2013-02-22 29 views
0
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('input[name="time"]').ptTimeSelect(); 
    }); 
</script> 

上面的腳本正在此:我如何讓javascript在asp.net控件上工作?

<input name="time" value="" /></td>

但不是在做這個...

<asp:TextBox ID="time" name='time' runat="server"></asp:TextBox>

+0

ASP.net控制轉化爲一個HTML的控制,所以看的HTML源代碼,看看有什麼了。 (我的猜測是因爲你只使用「時間」的id而不是「名稱」) – 2013-02-22 11:40:11

+0

我試過它的名字,它仍然沒有工作 – Arbaaz 2013-02-22 11:41:41

+1

這個答案很可能是你的問題的解決方案:http://stackoverflow.com/a/6345700/79485您需要使用ClientID屬性。 – Marcel 2013-02-22 11:42:25

回答

0

請使用如下代碼

<script type="text/javascript"> 
$(document).ready(function() { 
var id='<%=time.clientid%>' 
    $('#'+id).ptTimeSelect(); 
}); 
</script> 

,讓我知道這是行不通的。

+0

var id ='<%= time.clientid%>' CS1061:'System.Web.UI.WebControls.TextBox'不包含'clientid'的定義,也沒有擴展方法'clientid'接受第一個參數可以找到類型'System.Web.UI.WebControls.TextBox'(你是否缺少使用指令或程序集引用?) – Arbaaz 2013-02-22 11:58:02

+0

似乎你在服務器端代碼中使用c#。請用ClientID替換clientid,因爲它區分大小寫。 – Ravi 2013-02-22 12:42:12

+0

它的工作,但你可以解釋一些代碼,我對JavaScript或jquery一無所知,如果我有不止一個文本框,我必須複製粘貼

0

從我記得ASP.NET是它修改元素的ID和名稱以確保它始終是唯一的。該<asp:TextBox>的最終結果可能是這樣的:

<input name="ctr_0102_time" /> 

最好的辦法是檢查實況頁面上的元素的來源,以確定哪些屬性它。如果它確實有一個隨機標識符,那麼你或許應該將它基於一個特定的類:

<input class="time" /> 
<asp:TextBox CssClass="time"></asp:TextBox> 

$('input.time') ... 

,可能會導致該打破的另一件事是後背上。在ASP.NET中發佈後不會重新準備好文檔,他們只需重新加載頁面。而不是使用$(document).ready()使用:

function pageLoad() { ... } 
0

試試這個:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('[id$=time]').ptTimeSelect(); 
    }); 
</script> 
+0

CS1061:'System.Web.UI.WebControls.TextBox'不包含'clientid'的定義,並且沒有找到接受'System.Web.UI.WebControls.TextBox'類型的第一個參數的擴展方法'clientid'(可以找到缺少使用指令或程序集引用嗎?) – Arbaaz 2013-02-22 12:28:13

+0

我的解決方案沒有使用clientid,您的代碼中可能有其他錯誤。 – RedDevil79 2013-02-22 12:32:22

相關問題