Javascript 输入值的jQuery对话框脚本
我对jQuery对话框和脚本处理方式有点问题 在html对话框中,我有Javascript 输入值的jQuery对话框脚本,javascript,jquery,jquery-ui,dialog,modal-dialog,Javascript,Jquery,Jquery Ui,Dialog,Modal Dialog,我对jQuery对话框和脚本处理方式有点问题 在html对话框中,我有 <input id="test"> 警报工作,初始val替换工作,这意味着没有任何重复或丢失的输入区域 当前的总脚本不起作用: <input type="button" class="testbutton" /> <input type="text" size="10" id="test" name="test" value=""> $('#test').val("currentv
<input id="test">
警报工作,初始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");
});
$(“#测试”).val(“当前值”);//这很有效
$('.testbutton')。单击(函数(){
警惕();
$('测试').val(“哈哈”);
});
更新
一旦对话框关闭然后重新打开,该对话框将在#test中显示正确的值。这可能是我缺少的东西吗?将jQuery代码放入
$(文档).ready(函数(){…您的代码…})
。这将使它在浏览器为您的页面创建DOM树后执行。否则javascript无法正确搜索/操作DOM元素。它将如下所示:
$(document).ready(function () {
$('.testbutton').click(function() {
$('#test').val("haha");
});
});
更新:
如果HTML代码是动态加载的,则使用绑定事件处理程序:
$(document).ready(function () {
$('.testbutton').live("click", function() {
$('#test').val("haha");
});
});
我想您应该将代码包装在$(function(){//code here})中;确保代码仅在DOM就绪时运行。问题最终是测试中的问题。出于某种原因,替换使用类标识符而不是id标识符。我想这是因为#将只替换一个实例,并且由于我尚未发现的某些原因,对话框有多个实例(或隐藏的实例)
谢谢你的建议 你确定
val()
就在这里吗?Afaik its用于
而不是
。试试attr(“value”)
@zeiss-val()
对输入很好,实际上,val()
是最好的attr('value')
恰好适用于输入,因为它在HTMLInputElement节点上转换为JavaScript.value
。它不访问HTML属性值
,这是一个完全不同的东西:属性值
对应于JavaScript属性。defaultValue
,而不是。值
。如果它是一个对话框,它可能是通过AJAX加载的,并且它是一个HTML片段。如果是这样,那么就不会为该内容触发“就绪”事件。不,不起作用。不管怎么说,该对话框是一个post DOM事件,因此在对话框中添加document.ready没有什么意义,我认为?更新的版本对我来说不起作用。放在哪里重要吗?同样,如果对话框内容是通过AJAX加载的HTML片段,则没有“就绪”事件。当然,我不知道他的对话框是如何工作的,因为最初的问题没有很好地描述环境。如果您通过AJAX加载HTML,您应该在将HTML加载到DOM后运行bind方法,这取决于具体的用例。
$(document).ready(function () {
$('.testbutton').click(function() {
$('#test').val("haha");
});
});
$(document).ready(function () {
$('.testbutton').live("click", function() {
$('#test').val("haha");
});
});