抓取

2012-07-01 51 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(); 

但它不推荐使用。