当我试图获得字段值时,我得到的是一个空白的响应

时间:2014-09-16 02:44:18

标签: javascript jquery html google-chrome

以前从未发生过这件事,但这是我的问题。我正试图获得字段的值,这是标记的样子

<input type="text" class="in-field" name="name" placeholder="Site Name" autocomplete="off" id="name1">

现在我的JS获取值

var name = $("#name1").val();
console.log(name);

现在我得到的只是

enter image description here

我无法真正描述它,但是当它应该返回一些用户输入时,它可以返回任何内容。有任何想法吗?

2 个答案:

答案 0 :(得分:0)

好的,直截了当。

var name = $("#name1").val();
console.log(name); // ...

...无法返回任何内容,因为您没有收听用户input并且您实际上没有设置任何值:

<input type="text" class="in-field" name="name" placeholder="Site Name" autocomplete="off" id="name1">

确保已将代码包装到

$(function(){ // DOM ready
    // HERE...
});

...或在结束</body>标记之前。现在让我们听一下用户输入:

$('#name1').on('input', function(){
    console.log( this.value );
});

答案 1 :(得分:0)

我认为你的问题是你的代码在页面加载时运行,因此当它执行时,字段中没有任何内容。如果有人稍后输入某些内容并不重要,因为您已经抓住了该值并在用户有时间输入内容之前将其打印出来。

你想尝试添加一个keyup处理程序或一个提交按钮,如下所示:

$("#name1").keyup(function (e) {
    console.log(String.fromCharCode(e.which));
});

Demo

记录他们输入的每个密钥。或者,您可以使用“提交”按钮(如果您在客户端执行所有操作,则实际上不必执行表单):

<button id="sub">Submit</button>
$("#sub").click(function () {
    var name = $("#name1").val();
    console.log(name);
});

Demo