【问题标题】:Getting text from input form returns empty string, but console.log shows displays text从输入表单获取文本返回空字符串,但 console.log 显示显示文本
【发布时间】:2016-11-15 05:42:09
【问题描述】:

我知道这是一个经常发布的问题,所以我深表歉意,但我已经尝试过 javascript、jQUERY、parts of this,之前工作的几个版本,.value,.textContent,.innerHTML, getAttribute('value')、document.getElementById 以及我能想到的所有其他内容。

我 console.log(user_name.value) 并得到我想要的值,但是当我 console.log(name) 或尝试使用 user_name.value 它只是一个空字符串。我是开发新手,所有其余代码都可以正常工作,其他一切都挂在这个简单的部分上,我还不能解决它。任何帮助将不胜感激。

HTML:

    <form>
        <input id="user_name" type="text" placeholder="Your Name" />
        <input id="user_email" type="text" placeholder="Your E-mail" />
    </form>

JavaScript:

var name;
var email;

function reserveSeat(name, seatNumber, email) {

    var name = $('#user_name').getAttribute('value');

    var email = $('#user_email').getAttribute('value');

    var seatNumber = seatNumbers;

    reservedSeats.push (new CustomerReservation (name, seatNumber,   email));
    console.log(name)
    console.log(email)
};

$('.submitBtn').on('click', reserveSeat(name, seatNumber, email));

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    除了正确的,您尝试了所有方法:val()

    name = $('#user_name').val();
    
    email = $('#user_email').val();
    

    注意:如果 submitBtn 是类型 submit 不要忘记阻止默认事件,

    $('.submitBtn').on('click', function(e){
        e.preventDefault();
        name = $('#user_name').val();
        email = $('#user_email').val();
        reservedSeats.push (new CustomerReservation (name, seatNumber,   email));
        console.log(name)
        console.log(email)
    
    });
    

    注意2:如果您的表单是动态添加的,请不要忘记委托您的事件

    【讨论】:

    • 太棒了。谢谢!这对我很有帮助!
    【解决方案2】:

    输入框中没有名为 value 的属性,而您正在使用带有 javascript 函数的 jquery,使用 ".val()" 是正确的选项

    【讨论】:

      【解决方案3】:
      Try this,
      
      <form>
          <input id="user_name" type="text" placeholder="Your Name" />
          <input id="user_email" type="text" placeholder="Your E-mail" />
          <input id="submitBtn" type="submit" class="submitBtn"/>
      </form>
      
      
      $(document).on('click','.submitBtn',function(){
      
             var name = $('#user_name').val();
             var email = $('#user_email').val();
      
             console.log(name)
             console.log(email)
      
      });
      

      【讨论】:

      • 谢谢!开发新手,我知道答案就在这里,而且比我尝试的要简单。谢谢!
      【解决方案4】:

      请查看这篇

      /*need gobal variable or not?? if not I will just remove it
      var name;
      var email; */
      
      
      function reserveSeat(seatNumbers) {
        /*for savety*/
        seatNumber = Number(seatNumbers) || 5;
        /* change getAttribute(value) to val()*/
        var name = $('#user_name').val(),
          email = $('#user_email').val();
      
        reservedSeats.push(new CustomerReservation(name, seatNumber, email));
        console.log(name);
        console.log(email);
      };
      
      $('.submitBtn').on('click', reserveSeat(seatNumber));

      【讨论】:

        猜你喜欢
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 2020-12-13
        • 1970-01-01
        • 2012-06-28
        • 2023-03-19
        • 1970-01-01
        • 2013-05-24
        相关资源
        最近更新 更多