抓取

2012-07-01 50 views
0

我已經衛生組織的代碼有兩個控件,運行時間兩個控制值呈現如下:抓取

ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7e7_ctl00_gdvItinerary_ctl03_txtTravelDate  
ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7e7_ctl00_gdvItinerary_ctl04_txtTravelDate 

如何獲取的上述使用jQuery兩個控件的值?

+2

對不起,但這是什麼?如果它的''id'控制,你可以使用'$('#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7e7_ctl00_gdvItinerary_ctl03_txtTravelDate')'爲第一個和第二個相同 – Jashwant

+1

這沒有多大意義。請編輯quesiton以提供更多信息並準確顯示發生了什麼,您正在嘗試什麼以及預期效果是什麼。你已經發布了兩個字符串,我不知道它們是什麼或它們指的是什麼。 – Utkanos

+0

@arttronics':)'謝謝你!將再次添加我的評論 –

回答

0

簡單 - 使用.val()

var firstValue = $('#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7‌​e7_ctl00_gdvItinerary_ctl03_txtTravelDate').val(); 
var secondValue = $('#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7e7_ctl00_gdvItinerary_ctl04_txtTravelDate').val(); 

你應該認真考慮使用短id秒。從這些id s單獨,我有絕對不知道什麼值代表。

你可以把它與更具可讀性:

var baseID = "#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7‌​e7_ctl00_gdvItinerary_"; 

var firstValue = $(baseID + 'ctl03_txtTravelDate').val(); 
var secondValue = $(baseID + 'ctl04_txtTravelDate').val(); 
+0

硬編碼asp.net生成的客戶端ID是一個非常糟糕的主意......如果您更改此控件的容器樹,您的代碼將被破壞...嘗試使用<%= usercontrol.ClientID%>代替 –

+0

@AHMED:不是我自己的asp.net用戶。問題也沒有被標記。你說得對。 – Eric

1

在asp.net,你控制的id在運行時改變。

如果您的ID爲mycontrol,則會在客戶端更改爲blahblahblahmycontrolid將在那裏結束)。

所以,

,如果你有一個asp.net控制(文本框),如下圖所示,

<asp:TextBox runat='server' id='mytxtbox'></asp:TextBox>

你可以做,

$("input[id$='mytxtbox']").val(); 

它選擇所有input_mytxtbox結尾的標記

,或者你可以做這樣的事情,如果JavaScript是在同一個.aspx文件

$('#<%=mytxtbox.ClientID %>').val() 

如果您正在使用asp.net 4.0,

您可以ClientMode屬性添加到Static

<asp:TextBox ID="mytxtbox" runat="server" ClientIDMode="Static"></asp:TextBox>

這將保留TextBox到的ID

所以,你可以做,

$('#mytxtbox').val(); 


是的,你也可以,看到源代碼,並使用轉換id這樣,

var txtboxValue = $('#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7‌​e7_ctl00_gdvItinerary_ctl03_txtTravelDate').val(); 

但它不推薦使用。