从输入表单获取文本返回空字符串,但console.log显示显示文本

时间:2016-11-15 05:42:09

标签: javascript jquery html

我知道这是一个常见的问题所以我很抱歉,但我已经尝试了javascriptjQUERYparts 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));

4 个答案:

答案 0 :(得分:1)

你尝试了除了正确之外的所有人:val()

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

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

注意:如果submitBtn属于提交类型,请勿忘记阻止默认事件,

$('.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:如果您的表单是动态添加的,请不要忘记委派您的活动

答案 1 :(得分:0)

输入框中没有名为 value 的属性,并且您正在使用jquery和javascript函数,使用“。val()”是正确的选项< / em>的

答案 2 :(得分:0)

CASE

答案 3 :(得分:0)

请查看此内容

/*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));