在表单提交时动态更改表单操作

时间:2013-02-01 08:58:33

标签: javascript html forms

<form method='GET' name='search' action='index.php'> 
    <input type="hidden" name="searchType" value="all" />
    <input type="checkbox" name="vehicle" value="first"/> 
    <input type="checkbox" name="vehicle" value="second" checked/> 
</form>

<a href="javascript:document.search.submit()"></a>

从上面的表单中,如果选中第一个复选框,则我希望网址数据为index.php/searchType=all,如果选中第二个复选框,则我希望网址数据为index.php/(为空)。我该怎么做?是否可以打开或关闭“隐藏”参数,如上例所示?当选中第二个复选框时,我不希望它为index.php/searchType=,而是删除整个参数名称。


这是第二个问题:

我想在Form Action中注入一些参数,我该怎么做?它看起来像这样:

<a href="javascript:injectParameter();document.search.submit()"></a>

我应该在injectParameter()方法中写什么?

很抱歉,我是Javascript和网络的新手。

2 个答案:

答案 0 :(得分:0)

示例injectParameter函数将是:

function injectParameter() {
   document.search.action = "index.php?newParam1="+newValue+"&newParam2="+newValue2;
}

答案 1 :(得分:0)

我认为,如果您不希望输入字段显示在网址中,您可以在发布之前将其从表单中删除。

未测试:

var objForm = document.search;
if (objForm.vehicle.checked)
    {
    objForm.removeChild(objForm.searchType);
    objForm.submit();
    }

这是你的目标吗?

同样多个具有相同名称的字段也不起作用。

你可能想要像这样使用无线电按钮:

<input type="radio" name="vehicle" value="all" />
<input type="radio" name="vehicle" value="first"/> 
<input type="radio" name="vehicle" value="second" selected /> 

或创建一个像这样的字段数组:

<input type='checkbox' name='vehicle[]' value='first' />
<input type='checkbox' name='vehicle[]' value='second' checked />

我希望这会有所帮助......