jquery 对话框正在清除我的表单字段,我需要从 jquery 对话框返回一个值

标签 jquery ajax dialog

1.) 我有一个 jQuery 对话框,每当特定文本框获得焦点时就会打开该对话框。对话框的内容从 ajax 加载,并且焦点文本框的唯一 ID 在 ajax 调用中传递(如下所示):

$('[name=start_airport[]],[name=finish_airport[]]').click(function(){<br/>   var id = $(this).attr('id');<br/>   if($('#use_advanced_airport_selector').attr('checked')) {<br/>     $('#advanced_airport_selector').dialog({<br/>       open : function() {<br/>         $(this).load('/flight-booker/advanced-airport-selector.php?callerID='+id);<br/>       }<br/>     });<br/>     $('#advanced_airport_selector').dialog('open');<br/>   }<br/> });<br/>

(where advanced_airport_selector is an empty div)

那部分工作正常。但是,当我在对话框中进行 ajax 调用时,我的所有表单值都会重置!无论我做什么,当该对话框打开时,所有表单值都会重置(而不仅仅是焦点文本框的值)。我根本不明白什么会导致这种行为!

但这只是问题#1。

2.) 我需要能够从该对话框返回一个值。我在 ajax 查询中传递 ID,以便在对话框中执行某些操作后可以使用 jquery 选择器更新调用者的值。但是,由于我从未遇到过 DOM_ERRORS,我实际上无法访问该文本框。这没有任何意义!

有很多代码要发布,而且真的很难解释,如果我不清楚我在问什么,很抱歉。

最佳答案

问题 #2 中的 DOM 错误可能是由选择器中的方括号引起的。 方括号( [ 和 ] )是 jQuery 中的特殊字符,因此您应该像这样转义它们:

$('[name=start_airport\\[\\]],[name=finish_airport\\[\\]]').click(function(){
...
});

来自http://api.jquery.com/category/selectors/ :

If you wish to use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[]^`{|}~ ) as a literal part of a name, you must escape the character with two backslashes: \\. For example, if you have an element with id="foo.bar", you can use the selector $("#foo\\.bar").

关于jquery 对话框正在清除我的表单字段,我需要从 jquery 对话框返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003593/

相关文章:

java - 带有 TextView 的静态对话框

javascript - JQuery 中的replaceWith()

javascript - 如何添加关闭按钮以使用 CSS 提醒日志?

javascript - 根据嵌套键值计算对象

javascript - JQuery/Ajax 和 when/done/promise 混淆

android - android 中的警报对话框不应关闭

javascript - 如何从带有列表标签的对话框中的复选框绑定(bind)属性(选中),SAPui5

jQuery 提交在 url 中加载表单数据,但不会发布到 ColdFusion cfc

ajax - Grails的简单AJAX示例

javascript - FOSUserBundle AJAX 使用 Symfony2 登录(路由)