0

このコードを使用して、jQuery を使用して var 値を取得しようとしました。なんらかの理由で name が null または undefined に等しくなり、それを理解できないようです。

<asp:TextBox 
    ID="Text_Email" 
    runat="server" 
    CssClass="" 
    Width="234px">Email</asp:TextBox>

var name = $("#<%=Text_Email.ClientID%>").value; // name == undefined

これが私のメインスクリプトです:

$(document).ready(function () {
    $("#<%=send_info.ClientID%>").click(function () {
        // var name = document.getElementById("#<%=Text_Name.ClientID%>").value;
        var name = $("#<%=Text_Email.ClientID%>").value;
        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

         if (reg.test(name) == false) {
             $(this).val("");
             $("#error_email_adress").removeClass('email_valid');
             $("#error_email_adress").addClass('email_invalid');
             return false;
         } else {
             $("#error_email_adress").removeClass('email_invalid');
             $("#error_email_adress").addClass('email_valid');
             alert("Message sent");
             return true;
         }
     });
 });

この部分も私を混乱させます。なぜこれが起こるのですか?ここで名前が定義されている理由を誰かに説明してもらえますか?

$("#<%=Text_Email.ClientID%>").click(function () {
    var name = this.value;//name != undefined;
});

ここでは name は定義されていません

var name = $("#<%=Text_Email.ClientID%>").value; // name == undefined;

助けてくれてありがとう。

4

3 に答える 3

4

jQueryには値がありませんが、テキストボックスにはval()関数があり、

これを試して、

var name = $("#<%=Text_Email.ClientID%>").val();

あなたのコードは

$("#<%=Text_Email.ClientID%>").click(function () {
       var name = $(this).val();// you will get value in name by this statement.
});
于 2012-08-15T14:36:20.453 に答える
0

あなたが書いたものの代わりにこれを試してください

$(this).val()

jquery の構文はほぼ単純であることに注意してください。要素の値に関する関数は $.val() です。次のような文字列を渡すことで、要素の値を設定できます。

$(this).val("the desired value");

または、何も渡さずに要素の値を取得できます。

于 2012-08-15T14:40:30.883 に答える
0
$("#<%=Text_Email.ClientID%>").click(function () {
    var name = this.value;  //<-- 'this' here is a DOM HTML Object which has .value property
    var elem = jQuery(this); //<-- converts the DOM Object into a jQuery object, jQuery does not have .value property
    var nameVal = elem.val(); //<-- get the value the jQuery way
});

読み物:

于 2012-08-15T14:40:49.720 に答える