我無法讓我的表單提交工作。我正在使用preventDefault 以動態更改表單的動作屬性,但是當我點擊 按鈕時,它根本沒有做任何事情,而且我爲什麼可能會使用這個按鈕。任何人都可以請看看並指出我出錯的地方嗎?表單提交與jQuery不工作
下面的代碼:
JS:
$j('select[id=subtype]').live('change',function(){
var stype = $j(this).val();
var styp_pos = $j.inArray(stype, styp_id_arr);
var styp_url = styp_url_arr[styp_pos];
$j('input[id=styp_url]').val(styp_url);
});
$j('button[id=frm_submit]').click(function(event){
event.preventDefault();
var full_url = typ_url + '-' + styp_url + '.html';
alert(full_url);
$j('form[id=type_sel_form]').attr("action", full_url);
$j('form[id=type_sel_form]').submit();
});
HTML:
<form id="type_sel_form" name="type_sel" class="stsel_form" action="subtype.php" method="post">
...
<button id="frm_submit" type="submit" class="st_button">View</button>
</form>
編輯:具有在第一個版本糾正一個錯字,並通過Firebug的運行代碼時後,我收到一條錯誤消息,指出typ_url沒有定義。我在提交之前執行的操作(JS代碼的第一部分)中定義了它。這是否是點擊按鈕時沒有任何反應的原因?
非常感謝提前
感謝您發現錯字。我已經糾正它並相應地編輯了問題。 – Argoron
在第一個函數內定義的變量在第二個函數中不可見。分享您在jsfiddle.net上試圖做的事例。否則,你可以通過將它們移到第一個函數之上來使變量全局。但這可能是一種代碼味道。 –
我發現解決方案是通過查看具有可變定義問題的其他帖子:我將「文檔準備好」之外的變量聲明爲「= null」,然後再次如上所述進行聲明,現在它可以工作。感謝您讓我走上正軌! – Argoron