获取两个控件值

时间:2012-07-01 09:52:10

标签: javascript jquery jquery-plugins

我有两个控件,其代码运行时呈现如下:

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 个答案:

答案 0 :(得分: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

所以,你可以这样做,

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

是的,您也可以查看源代码并使用转换后的id

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

但不推荐。

答案 1 :(得分: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开始,我就绝对不知道该值代表什么。

您可以通过以下方式使其更具可读性:

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();