[英]jQuery dialog scripts for input val
我在jQuery对话框和脚本处理方式方面存在一些问题。
在对话框html中,我有
<input id="test">
如果我做
<script type="text/javascript>
$('#test').val("haha")
</script>
输入后 ,它显示了。 如果我把它放在前面 ,那是行不通的。 现在的问题是我试图使用单击触发器更改$('#test')的值,但我做不到!
$('.testbutton').click(function() {
alert();
$('#test').val("haha");
});
警报起作用,并且初始val替换起作用,这意味着没有重复或缺少输入区域。
现在的总脚本不起作用:
<input type="button" class="testbutton" />
<input type="text" size="10" id="test" name="test" value="">
$('#test').val("currentvalue"); // This works
$('.testbutton').click(function() {
alert();
$('#test').val("haha");
});
更新一旦关闭然后重新打开对话框,该对话框将在#test中显示正确的值。 这可能是我所缺少的吗?
将您的jQuery代码放入$(document).ready(function () {...your code...})
。 这将使其在浏览器为您的页面创建DOM树之后执行。 否则,javascript无法正确搜索/处理DOM元素。 它将如下所示:
$(document).ready(function () {
$('.testbutton').click(function() {
$('#test').val("haha");
});
});
更新:
如果您的HTML代码是动态加载的,则使用live
绑定事件处理程序:
$(document).ready(function () {
$('.testbutton').live("click", function() {
$('#test').val("haha");
});
});
我猜您应该将代码包装在$(function(){//此处的代码})内; 以确保仅在DOM准备就绪时才运行代码。
问题最终成为测试中的#。 由于某种原因,替换使用类标识符而不是ID标识符。 我想这是因为#将仅替换一个实例,并且由于我尚未发现的某些原因,该对话框有多个实例(或隐藏的实例)。
感谢您的所有建议!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.