Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入值的jQuery对话框脚本_Javascript_Jquery_Jquery Ui_Dialog_Modal Dialog - Fatal编程技术网

Javascript 输入值的jQuery对话框脚本

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

我对jQuery对话框和脚本处理方式有点问题

在html对话框中,我有

<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");
    });
});