jQuery警报返回代码

时间:2012-08-20 15:44:19

标签: jquery html alert

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

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

发生了什么事?

3 个答案:

答案 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代码根本不起作用。