單純想要用 post 送出表單 , 但是 firefox一直都沒有反應,以下是我的程式碼,想請教該如何處理
<script>
function do_cc(){
fm1.type.value = "ch";
fm1.action = "index.php?act=prd";
fm1.method = "POST";
fm1.target = "_self";
fm1.submit();
return false;
}
</script>
<form name="fm1" enctype="multipart/form-data">
<input type="hidden" name="type">
<input name="search" type="text" class="input_search"/>
<input type="button" value="搜尋" class="input_send" onclick="do_cc('del');"/>
用 form 就可以了 不需要 javascript
<pre class="c" name="code">
<form name="fm1" method="POST" action="index.php">
<input type="hidden" name="type" value="ch">
<input type="hidden" name="act" value="prd">
<input name="search" type="text" class="input_search"/>
<input type="submit" value="搜尋" class="input_send" />
</form>
你這 HTML 有兩個錯誤:
我的FF5跟Chrome12都能跑
請問gfskywing,你用的Firefox是哪個版本?版本跟相容性關係也很大...
另外,gfskywing,你的Javascript寫法,在比較早期的瀏覽器中,大概只有IE可以跑。依照DOM標準的話,你的Javascript應該是:
<pre class="c" name="code">
function do_cc(){
document.getElementsByName('type')[0].value = 'ch';
var fm1 = document.getElementsByName('fm1')[0];
fm1.action = "index.php?act=prd";
fm1.method = "POST";
fm1.target = "_self";
fm1.submit();
}
另外,do_cc最後的return false;是不需要的,通常我們會在onsubmit的事件處理函數中,要抑制他執行submit動作時才需要這樣做。而且你這樣使用onclick時,他實際上是用eval執行裡面的字串,所以在do_cc函數中return false不會有任何作用,你應該使用onclick="do_cc();return false;"。(do_cc()中的return false,只是回到這個eval執行的context環境中,所以沒作用)
還有,form並不需要enctype="multipart/form-data"屬性,除非你要上傳檔案。target="_self"也不需要,因為這是預設值。