代码之家  ›  专栏  ›  技术社区  ›  Dr. Paul Kenneth Shreeman

通过onclick或just click事件从修改的单选按钮中获取值会给出未定义的答案?

  •  0
  • Dr. Paul Kenneth Shreeman  · 技术社区  · 8 年前

    <label class="btn btn-primary" onclick="pushme(this.value)"><input type="radio" name="reps" id="here" value="20" /> 20 </label>

    function pushme(e){
    console.log("Button is pressed!" + e)
    }
    

    我还尝试了以下方法:

    <label class="btn btn-primary" onclick="pushme()"><input type="radio" name="reps" id="here" value="20" /> 20 </label>

    function pushme(){ var test = $(this).val; console.log("Testing this" + test) }

    $("btn").click(()=>{console.log("Print this stuff" + this.val()) 有许多变体,如val without()、value()、value、e.val with input“e”in function等…只有“Print this stuff”部分工作,如果undef不工作,则会在控制台中导致重大错误。

    2 回复  |  直到 8 年前
        1
  •  2
  •   E. Sundin    8 年前

    只需将事件侦听器移动到输入。

    function pushme(value) {
      console.log("Button is pressed!" + value)
    }
    <label class="btn btn-primary"><input 
       type="radio" name="reps" id="here" value="20" onclick="pushme(this.value)" /> 20 </label>

    如果希望它侦听任何按钮,则可以通过JavaScript动态附加事件侦听器:

    function pushme() {
      let value = this.value
      console.log("Button is pressed!" + value)
    }
    
    document.querySelectorAll('.btn input')
      .forEach(button => {
        button.addEventListener('click', pushme)
      })
    <label class="btn btn-primary"><input 
       type="radio" name="reps" id="here" value="20" /> 20 </label>
    
    <label class="btn btn-primary"><input 
       type="radio" name="reps" id="there" value="30" /> 30 </label>
        2
  •  1
  •   rahul    8 年前

    我看到你的密码了 https://codepen.io/pkshreeman/pen/ModpPm?editors=1010 .修改pushme函数:

    function pushme(event) {
       let value = event.target.innerText;
       console.log("Button is pressed! " + value)
    }