2011-02-26 56 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