2015-02-10 36 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