2010-11-01 33 views
2

这是一个奇怪的问题,它适用于IE,但它不适用于Firefox。在jQuery中选择一个选项与jQuery在火狐中不起作用

我有一个SELECT控制,当获得焦点时,调用AJAX呼叫检索HTMLOPTION s。

onfocus事件处理程序包含此代码:

var selectedValue = $(":input[name='" + fieldName + "']").val(); 

var dataRetrieved = function(data) 
{ 
    $(":input[name='" + fieldName + "']").html(data); 
    $(":input[name='" + fieldName + "']").val(selectedValue); 
    alert("data: " + data); 
    alert("former value: " + selectedValue); 
}; 

    $.post(url, data, dataRetrieved); 

第一个警报显示:

data: <option value=""/> 
<option value="1" >a1</option> 
<option value="2" >a2</option> 
<option value="3" >a3</option> 

而第二个:

former value: 3 

所以它应该工作,实际上它在Internet Explorer中(什么让我觉得我对HTML做错了什么)

任何想法可能是什么问题?

谢谢。

回答

0

输入选择器在它之前不需要冒号。你的选择应该是这样的:

$("input[name='" + fieldName + "']") 

$(":input[name='" + fieldName + "']") 

这是我第一次的猜测,为什么它可能无法工作。

+0

http://api.jquery.com/input-selector/这就是我在文档中看到的:P我已经尝试过了,它仍然是相同的。无论如何,它正在使用IE浏览器。 – vtortola 2010-11-01 14:47:14

+0

“:input”实际上选择了表单中的所有控件(即textareas,选择,按钮),而不仅仅是输入,所以在使用时要小心。什么具体不工作?另外,ajax调用的代码是什么样的? – ryanulit 2010-11-01 18:28:06

+0

很高兴知道:) ajax调用中的代码始终返回(此时)HTML代码。基本上,在开始时,服务器仅向SELECT提供一个OPTION(数据库中选定的一个),但是如果您关注控件,则控件将充满所有选项。我试图设置的是存储当前选定的值,上传控制选项,然后重新选择前一个选项,这是什么在Firefox中不起作用。我意识到的其他事情是,这个问题只发生,如果我让下拉打开,而它正在获得新的HTML :( – vtortola 2010-11-02 13:21:44

相关问题