2011-02-26 57 views
1

任何人有任何想法,为什么这段代码不工作在最新版本的Firefox? (在Chrome中正常工作)。jQuery表单行动更改不起作用

$("select[name='action']").live('change', function() 
    { 
     $(this).closest("form").attr('action', $(this).val()); 
     alert($(this).closest("form").attr('action')); 
     //$(this).closest("form").submit(); 
    }); 

编辑 它不是在IE8工作压力太大。奇怪的。

HTML

<form method="post" action="#"> 
<fieldset> 
    <select style="width:95px" name="action" class="action"> 
    <option>Select</option> 
    <option value="/user/account">Preview</option> 
    <option value="/user/account/edit">Edit</option> 
    <option value="/user/account/upgrade">Upgrade</option> 
    </select> 
</fieldset> 
</form> 
+0

请同时发布HTML。也请详细描述症状。 – 2011-02-26 02:00:33

+0

@Mark Eirich - 症状?在Chrome中,alert()显示正确的操作,基于选择,在FF中显示#,在IE中没有任何反应。 – 2011-02-26 02:03:27

回答

2

这是一个命名冲突,给选择另一名称。

表单具有属性“action”和成员“action”(select本身,因为它的名字是“action”)。

警报应该给你一个法郎[object HTMLSelectElement],这里到<select/>,而不是形式的行动属性,你喜欢访问form.attr('action')点。

+0

+1这是我发现的同样的事情。 – 2011-02-26 02:16:12

+0

谢谢,不知道冲突。 – 2011-02-26 02:17:30