在网络表单中,我有一些输入字段
<div id="search1">
<div class="forminput">
Label 1<br />
<input type="text" name="Field1" value="" size="20" />
</div>
<div class="forminput">
Label 2<br />
<input type="text" name="Field2" value="" size="20" />
</div>
</div>
由于焦点在控件上丢失,因此输入的值需要返回到asp.net文本框控件。我已经能够使用以下代码将值传递给div层或标准html元素:
function fieldUpdate() {
var currentValue = $(this).val();
var field = $(this).attr("name");
if (currentValue != "") {
$("#results").append(field + ":" + currentValue + "+");
}
}
$(function () {
$("#search1 :input[type=text]").focusout(fieldUpdate);
});
然而,这似乎不适用于asp.net服务器端控件。 的更新 此问题的目的是将输入到标准html输入字段的值配置到asp:文本框控件
中<asp:TextBox ID="results2" Text="" Width="400" runat="server" />
更新 以下是当前解决方案如何工作的屏幕截图。在顶部,您会看到输入字段,当用户输入一个值并从每个字段中选项卡时,此值将添加到标记为结果的Div图层中。我想要做的不是将字段名和值添加到我希望它们添加到asp:textbox控件的DIV元素中。
最好将此代码存储在外部js文件中,而不是存储在aspx页面中。
任何人都可以就如何做到这一点提出任何建议吗?
提前致谢
更新解决方案 感谢詹姆斯帮助我工作。下面是当前实现中使用的jQuery代码。
function fieldUpdate() {
var currentValue = $(this).val();
var field = $(this).attr("name");
var txt = $("#<%=results2.ClientID%>");
if (currentValue != "") {
$("#results").append(field + ":" + currentValue + "+");
if (txt) {
txt.val(txt.val() + field + ":" + $(this).val() + "+");
}
}
}
$(function () {
//only evaluate input text field
$("#search1 :input[type=text]").focusout(fieldUpdate);
现在允许使用输入字段名称和值填充asp:文本框。 示例Field1:foo + Field2:somevalue2 + Field3:somevalue3 ...
答案 0 :(得分:12)
那些不是ASP.NET TextBox控件;它们是HTML文本输入。要回答你的问题,你会这样做:
<script type="text/javascript">
$(function(){
$("#input1").val("Hello world");
});
</script>
<input type="text" id="input1" />
我注意到您在示例中设置了名称而不是ID。如果您有选择,我会使用ID,但您可以按名称找到一个元素:
$("input[name='Field1']").val("Hello world");
如果使用实际的ASP.NET TextBox控件,解决方案会有所不同:
<script type="text/javascript">
$(function(){
$("#<%=TextBox1.ClientID%>").val("Hello world");
});
</script>
<asp:TextBox ID="TextBox1" runat="server" />
如果你想获得search1
div中的所有文本输入,你可以这样做:
$(".forminput input[type='text']").val("Hello world!");
这是上面例子的jsFiddle:http://jsfiddle.net/DWYTR/
修改强>
根据您的评论,以下是blur
上将值从一个输入复制到另一个输入的方法:
$(".forminput input[type='text']").blur(function(){
var txt = $("#<%=TextBox1.ClientID%>");
if (txt){
txt.val(txt.val() + $(this).val());
}
});