我很难在我的转发器控件中找到文本框值。在按钮上单击我需要获取与单击按钮内部的文本框对应的文本框值。
所以我有:
Textbox1 --->必须与Button1绑定 TextBox2 ---->与Button2绑定的
<span>Question :</span><span>my second content <br /></span><span>Answer : </span><input name="ctl00$MainContent$ctl00$ctl00$TextArea" type="text" id="MainContent_ctl00_TextArea_0" value="6454" />
添加问题
问题:abcdedf
答案:添加问题
现在我有点击的jquery函数:
$(".addAnswerButton").click(function () {
//var quantityBox = $("#TextArea", $(this).parent());
var tr = $(this).closest("text")
alert(tr.val());
//quantityBox.text = "Hello there";
//var currentValue = quantityBox.val();
$(this).siblings('input[type="text"]').first().val("clicked");
//quantityBox.val(parseInt(currentValue) + 1);
});
我得到了部分工作:
$(this).siblings('input[type="text"]').first().val("clicked");
我在哪里设置文本框文本,但是再次,如果我点击第二个按钮,则不会发生任何事情。
我做错了什么?如何从特定文本框中获取价值?
更新
现在我选择解决方案,我为每个控件添加自定义属性:
<span>Question :</span>
<span>my second content <br /></span>
<span>Answer : </span>
<input name="ctl00$MainContent$ctl00$ctl00$TextArea" type="text" id="MainContent_ctl00_TextArea_0" value="654" mydataid="2" />
<button id="MainContent_ctl00_answerQuestion_0" Class="addAnswerButton" onclick="Click()" mydataid="2" >Add Question</button><hr /><span>Question :</span><span>abcdedf <br /></span>
<span>Answer : </span><input name="ctl00$MainContent$ctl00$ctl01$TextArea" type="text" mydataid="1" id="MainContent_ctl00_TextArea_1" value="654" />
<button id="MainContent_ctl00_answerQuestion_1" Class="addAnswerButton" onclick="Click()" mydataid="1">Add Question</button>
所以现在我可以通过这样做从onclick事件获得自定义属性:
$(".addAnswerButton").click(function() {
var pos = $(this).attr("mydataid");
alert(pos);
// $(this).siblings('input[type="text"]').first().val("clicked");
});
但是如何获得具有samme自定义属性名称作为按钮的文本框控件?
更新2
经过70次尝试后,我终于弄明白了(我第一次尝试使用Jquery)
解决方案
$(".addAnswerButton").click(function() {
var pos = $(this).attr("mydataid");
results = $('input[type = "text"][mydataid="'+pos+'"]').first();
alert(results.val());
});
重点是,您将获得自定义属性“name”,然后搜索具有相同属性名称的文本框。
答案 0 :(得分:2)
您可以使用某些属性在服务器上标记它们,并在jQuery代码中使用它。
服务器的输出如下:
<input type='text' data-item-id='1'>First</input>
<inpyt type='button' data-item-id='1'></input>
<input type='text' data-item-id='2'>Second</input>
<inpyt type='button' data-item-id='2'></input>
在按下按钮后,获取它的data-item-id并搜索具有相同属性值的文本框。
答案 1 :(得分:1)
评论后编辑。
我前往你的jsfiddle并使其工作:
$('[id*="answerQuestion"]').click(function () {
$(this).parent().children('[id*="TextArea_' + $(this).attr('id').substring($(this).attr('id').length - 1) + '"]').val('clicked');
});
说明:
就是这样!这有点棘手,但这是我发现的最佳解决方案。
希望这有帮助!
问候,抱歉,如果有一些英语不一致的地方:)!