JQueryテーブルの隠しフィールド
-
22-08-2019 - |
質問
jqueryを使用してテーブル行内の非表示フィールドに(クライアントIDによって)アクセスする方法を誰かが知っているかどうか疑問に思っていました。
$("#tblOne").find("tr").click(function() {
var worker = $(this).find(":input").val();
});
上記は入力が 1 つだけある行では機能することがわかりましたが、入力名によって値を取得する方法を見つけるには助けが必要です。
以下はテーブル行の例です。ID を使用して 2 つのフィールドにアクセスするにはどうすればよいですか?
<table id="tblOne">
<tr>
<td>
<asp:HiddenField id="hdnfld_Id" Text='<% Eval("ID") %>'></asp:HiddenField>
</td>
<td>
<asp:HiddenField id="hdnfld_Id2" Text='<% Eval("ID2") %>'></asp:HiddenField>
</td>
</tr>
</table>
解決
の方法であなたが今それを設定している、あなたがこれを行うことができます:
$('tr td', '#tblOne').eq(0).find(':input').val(); // find input in 1st TD
$('tr td', '#tblOne').eq(1).find(':input').val(); // find input in 2nd TD
あなたが入力のClientIDを心配する必要はありません、これを使用します。
他のヒント
私は、通常のIDと一致するように、正のルックアップを使用し、この方法は、クライアントIDを必要と回避
(idはFOOを含む)の $(この).find( "入力[ID * = 'FOO']")のval()。
あなたはこのようにそれを行うことができます:
$("#tblOne").find("tr").click(function() {
var election = $(this).find("td").eq(0).html();
var worker = $(this).find('input[name=theName]').val();
});
この優れた記事を読んで "どのようにあなたが欲しいものを手に入れますベンジャミン・スターリングによって」jQueryのを使用します。
なぜあなたは、単にこれを使用しないでください
jQuery("#<%=hdnfld_Id.ClientID%>")
<asp:HiddenField id="foo">
を生成します <input type="hidden" id="foo"/>
そうではありませんか?なぜそうしないのですか
$("#foo").val()
?
何をしようとしているのかをもう少し詳しく説明する必要があると思います。それを見つけたら
$(this).find(":input").val();
...入力が 1 つある場合にのみ機能します。おそらくあなたが探しているものはこれです:
$(this).find(":input").each(function() {
// Prints the value of each input.
alert($(this).val());
}
しかし、現状ではあなたの質問はあまり明確ではありません。質問を編集して、時間をかけて正確に説明してください。
はない答えが、私は(もちろんそのテーブルにtablesorter使用)表のセル内からの隠しフィールドの値を引っ張って信じられないほどの困難を抱えていたので、私はこのコード行を発見したことがとてもうれしいです。
$(この).find( ":入力")。valを();
と、それは見事に機能します。
それは巨大なテーブルの上でも動作しますので、私はまた、「.live」機能を使用します。
ありがとうございました!!!
HLR
私は、ポストバックを引き起こして送信ボタンを持つ3つのタブそれぞれを持っています。送信ボタンのクリックイベントの後、私は現在のタブが持続します。
ステップ1。
HiddenField のタブのdivの内側(「タブ」のdivは私のタブの内容を持っているすべての3つのdivを保持している):は、をASPを追加しました。
<asp:HiddenField ID="sel_tab" Value="" runat="server" />
ステップ2
ポストバックが発生し、各ボタンのクリックイベントでの sel_tab のの値を更新します。
protected void cmdSaveDailyMeasure_Click(object sender, EventArgs e)
{
sel_tab.Value = "0";
}
protected void cmdSaveWeeklyMeasure_Click(object sender, EventArgs e)
{
sel_tab.Value = "1";
}
protected void cmdSaveMonthlyMeasure_Click(object sender, EventArgs e)
{
sel_tab.Value = "2";
}
ステップ3。 では私のの.js のファイルを、私は次のコードを持っている。
// Tabs
$(document).ready(function() {
var iSelectedTab = $(this).find("input[id*='sel_tab']").val();
if (iSelectedTab == null)
iSelectedTab = 0;
$('[id$=tabs]').tabs({ selected: iSelectedTab });
});
これは、あなたがマスターページ(私は)を使用している場合でも動作します。 <%= foo.ClientID%>の部分を必要としないでください。