使用Javascript制作干净的表单提交的URL

时间:2011-05-01 07:47:58

标签: javascript

我想以domain.com/?product=value1&product2=value2 .....的形式创建一个网址。

有时文本框中可能没有值。如何使用Javascript忽略这些表单元素?

我想避开domain.com/?product=&product2=abs&product3=&product4=

我的表单

    <form action="customsearch.php">

    <input type="text" class="textfield" value="" id="product" name="product">
    <input type="text" class="textfield" value="" id="product2" name="product2">
.
.
.    
    <input type="submit" value="Send">

    </form>

4 个答案:

答案 0 :(得分:0)

您可以尝试这一点,但请记住,如果此人取消提交,您的表单将无法按预期工作(除非您开发了重新设置name属性的方法)...

document.getElementsByTagName('form')[0].onsubmit = function(event) {

   var inputs = this.getElementsByTagName('input');

   for (var i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
       if (inputs[i].value === '') {
           inputs[i].setAttribute('name', '');
       }
   }

   return true;
}

或者,在您的PHP文件中,删除空白的GET参数并将Location标题发送到干净的URL。

答案 1 :(得分:0)

您可以检查空文本框验证为

if(document.getElementById("product").value==""){
  // the value is empty.
}else{
  // the value is not empty.
}

答案 2 :(得分:0)

您可以订阅表单的提交事件:

<form action="customsearch.php" onsubmit="return formSubmit();">

并删除空元素:

function formSubmit() {
    var product = document.getElementById('product');
    var product2 = document.getElementById('product2');
    if (product.value == '') {
        product.parentNode.removeChild(product);
    }
    if (product2.value == '') {
        product2.parentNode.removeChild(product2);
    }
    return true;
}

答案 3 :(得分:0)

如何创建另一个表单?

1.按提交按钮创建表单

2.检查输入值。如果不为null,则创建input元素,然后插入表单

3.submit