2013-08-05 96 views
0

我有一個asp.net應用程序。在Default.aspx文件中我有這個代碼。爲什麼不是這個選擇器工作(jquery和asp.net)

<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server"> 

    <div id="chrome_ctrl_placeholder"></div> 
    <div> 
     <asp:CheckBox ID ="aspTech" runat="server" /><br /> 
     <asp:TextBox ID="txtText" runat="server"></asp:TextBox><br /> 
     <input type="checkbox" name="checkBox" runat="server" value="Technical" id="Technical" /> Technical<br /> 
     <input type="checkbox" name="checkBox" runat="server" value="Commercial" id="Commercial"/> Commercial<br /> 
     <input type="checkbox" name="checkBox" runat="server" value="HR" id="HR"/> HR <br /> 
     <%--<li><input type="button" runat="server" value="Save" id="btnSave" /></li>--%> 

     <button id="btnSave" >Save</button> 
     <button id="btnChecked" >Checked</button> 
     <button id="btnText">Text</button> 
    </div> 

,並在App.js文件我有這樣的代碼。

$(document).ready(function() { 

$("#btnChecked").click(function() { 
    alert("Checking"); 

    if ($("#Technical").checked == true) { 
     alert("Tech Checked"); 
    } 
    else 
    { 
     alert("Tech Not Checked"); 
    } 
}); 
}) 

Theres多一點代碼,但它不相關。

當我運行代碼時,它的編譯效果很好,當我點擊btnChecked按鈕時,它會發出「正在檢查」的提示,但如果選中標識爲「技術」的複選框,它就不會啓動,它總是會提醒「Tech Not Checked 」。那麼正確的代碼是檢查ASP複選框(id爲aspTech)是否已被檢查?

+0

那豈不是讓更多的SENCE使用'$( '輸入[名稱= 「複選框」]')VAL()'? –

+1

您可能需要閱讀['Control.ClientID'](http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx)和['Control .ClientIDMode'](http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx)。 'runat =「server」'的控件通常不會像客戶端一樣保留它們的服務器端ID。它們通常最終會變成'id =「PlaceHolderMain_ctl00_Technical」'。 –

回答

2

$("#Technical")返回一個jQuery對象,而不是一個DOM元素。 checked屬性適用於DOM元素,而不適用於jQuery對象。

或者使用jQuery的等價:

if ($("#Technical").is(":checked")) { 
} 

或訪問由jQuery對象包裝的DOM元素:

if ($("#Technical")[0].checked) { 
} 
1

嘗試使用is方法:

$("#Technical").is(':checked') 

prop或:

$("#Technical").prop('checked') === true 
1

當你在你的jQuery代碼檢查,對服務器端控件,你應該使用它的控制參考ClientID

試試這個:

$(document).ready(function() { 

$("#<%=btnChecked.ClientID%>").click(function() { 
    alert("Checking"); 

    if ($("#<%=Technical.ClientID%>").checked == true) { 
     alert("Tech Checked"); 
    } 
    else 
    { 
     alert("Tech Not Checked"); 
    } 
}); 
}) 
相關問題