使用javascript在提交时为表单预写文本

Prepend text to form on submission with javascript

本文关键字:表单 文本 javascript 提交 使用      更新时间:2023-09-26

我想在提交时将"https://"添加到表单中,而不会出现在文本提交框中。到目前为止,我有一个脚本:

<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" />

但我想不通。有人看到我做错了什么吗?

您肯定不想在函数中再次尝试提交表单;在它完成调用后,只要你不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()">