2

#username <input>要素の値を表示するために、次の HTML と JavaScript を使用しています。

<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 に答える