我正在使用以下HTML和JavaScript来显示#username
<input>
元素的值:
<form action="#" method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input class="test" type="submit" id="thing" value="Log In" />
</form>
$(document).ready(function() {
$('input#thing').on('click', function() {
var name = $('#username').val;
alert(name);
});
});
当我在浏览器中运行它时,我会收到警告
function (value) {
var hooks, ret, isFunction, elem = this[0];
if (!arguments.length) {
if (elem) {
hooks = jQuery.valHooks[elem.type] ||
jQuery.valHooks[elem.nodeName.toLowerCase()];
if (hooks &&
"get" in hooks &&
(ret = hooks.get(elem, "value")) !== undefined) {
return ret;
}
ret = elem.value;
return typeof ret === "string" ? ret.replace(rreturn, "") : ret == null ? "" : ret;
}
return;
}
isFunction = jQuery.isFunction(value);
return this.each(function (i) {var val, self = jQuery(this);if (this.nodeType !== 1) {return;}if (isFunction) {val = value.call(this, i, self.val());} else {val = value;}if (val == null) {val = "";} else if (typeof val === "number") {val += "";} else if (jQuery.isArray(val)) {val = jQuery.map(val, function (value) {return value == null ? "" : value + "";});}hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === undefined) {this.value = val;}});
}
应该说出输入的用户名是什么。
发生了什么事?
答案 0 :(得分:5)
使用
$("#username").val();
而不是:
$("#username").val;
警告val
功能的全部内容。确保实际调用该函数(使用()
)。
答案 1 :(得分:5)
以下代码将函数 val
分配给变量name
。
var name = $('#username').val;
alert(name);
然后将函数传递给alert
。如果要在文本框中传递值,则必须调用函数并传递其返回值:
var name = $('#username').val();
alert(name);
答案 2 :(得分:1)
您需要调用val()
函数。将其更改为$('#username').val();
(请注意括号)
只需.val
(没有括号)就会给你函数的代码。
此外,当您在jsfiddle上放置一个演示时,请确保选择正确的框架。如果您正在使用jQuery,请选择jQuery。 Mootools是默认的,会导致你的jQuery代码根本不起作用。