【发布时间】:2014-04-11 14:55:35
【问题描述】:
我遇到了一个问题,我想在 jQuery UI 对话框中显示用户输入,但它没有捕获任何值。我知道该插件可以工作,但我在对话框中显示来自文本框的用户输入的代码似乎是粗制滥造的。我注释掉了在我的JSFiddle 中破坏插件的代码。我基本上希望用户在文本框中输入的任何数据都显示在我在插件确认窗口中创建的空 div 中。
HTML:
First Name: <input type="text" id="name">
<br>
Last Name: <input type="text" id="last">
<br>
<input type="submit" id="button" value="Activate Plugin">
<div id="dialog" title="Confirmation">Please confirm that the following information is correct: <br>
First Name: <div id="firstinput"></div>
Last Name: <div id="lastinput"></div>
</div>
工作 jQuery 插件代码和注释掉的非工作代码:
$(document).ready(function() {
$('#dialog').dialog({
autoOpen: false,
width: 600,
buttons: {
"Correct": function() {
$(this).dialog("close");
},
"Incorrect": function() {
$(this).dialog("close");
}
}
});
$('#button').click(function() {
$('#dialog').dialog('open');
return false;
});
});
/*INPUT FROM TEXTBOXES DISPLAYING IN THE PLUGIN CONFIRMATION WINDOW LOGIC
$(document).ready(function () {
if $("#first").val() {
$(this).appendTo("#firstinput");
}
else if ("#last").val() {
$(this).appendTo("#lastinput");
};
});*/
如果有人查看我的fiddle 并让我知道我可能做错了什么,我将不胜感激。谢谢。
【问题讨论】:
-
if语句的语法错误。没有#first元素。 if 语句中的$(this)指的是document元素,因此不能附加到#firstinput或#lastinput -
@RGraham 我可以用这种方法完成我想要做的事情吗?我的语法应该如何?抱歉,我对 Web 开发很陌生。
-
没有真正需要像你一样多次调用对话框。查看下面我的答案,了解使用更少代码的解决方案。
标签: jquery jquery-ui validation textbox jquery-ui-dialog