2

我正在使用以下 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;}});
}

什么时候应该说输入的用户名是什么。

发生了什么?

4

3 回答 3

5

采用

$("#username").val();

代替:

$("#username").val;

val功能的全部内容正在被警告。确保实际调用该函数(使用())。

于 2012-08-20T15:45:52.617 回答
5

以下代码将函数 val分配给变量name

    var name = $('#username').val;
    alert(name);

然后,您将函数传递给alert. 如果要传递文本框中的值,则必须调用函数并传递其返回值:

    var name = $('#username').val();
    alert(name);
于 2012-08-20T15:46:17.650 回答
1

您需要调用该val()函数。将其更改为$('#username').val();(注意括号)

只是.val(没有括号)会给你函数的代码。

此外,当您在 jsfiddle 上进行演示时,请确保选择正确的框架。如果您使用的是 jQuery,请选择 jQuery。Mootools 是默认设置,会导致您的 jQuery 代码根本无法工作。

于 2012-08-20T15:46:20.893 回答