2015-02-10 39 views
1

我想在提交時將「https://」添加到表單中,而不顯示文本提交框。到目前爲止,我有一個劇本:用JavaScript提交文本以形式提交

<script> 
    function formSubmit(){ 
     var x=document.getElementById(「formname」); 
     for (var i=0;i<x.length;i++){ 
      if(x.elements.item(i).id == 'q' && x.elements.item(i).value != "") 
       x.elements.q.value='https://'+x.elements.item(i).value; 
      document.getElementById("formname").submit(); 
     } 
</script> 

和形式:

<form name="formname" method="GET" action="http://google.com/search" onsubmit="return (this.q.value == '') ? false : true; > 
    <input type="text" name="q" size="32" maxlength="256" value="" /> 
    <input type="submit" name="btnG" value="Search" /> 

,但不能弄明白。有人看到我做錯了什麼?

+0

可能需要更改的document.getElementById(「表格名稱」); document.getElementByName(「formname」); – Nick 2015-02-10 20:35:32

回答

1

你絕對不會想嘗試在你的函數中再次提交表單;在完成通話之後,只要您不需要return false就會繼續提交。

你的功能應該僅僅是:

function formSubmit(){ 
    var e=document.forms.formname.q; 
    if(e.value){ 
     e.value='https://'+e.value; 
    } return true; 
} 

而且表單的onsubmit屬性...

<form onsubmit="return this.q.value != '' && formSubmit()"> 
+0

嗯,當我點擊搜索時沒有任何事情發生。應該是這個。價值嗎?當我改變它,它提交,但不會追加... – user4552138 2015-02-10 21:18:57

+0

我的不好,我犯了一個窗體的'onsubmit'部分的錯誤。查看更新後的答案。 – Pluto 2015-02-10 21:45:19

+0

太棒了。完美的作品。謝謝! – user4552138 2015-02-10 21:55:09