使用单选按钮的值重定向

时间:2014-02-20 09:52:22

标签: javascript html

以下是我正在处理的代码

<html>
<script>
var submit = document.getElementById('btnFormSubmit');
submit.addEventListener('click', submitForm);

function submitForm(event){
event.preventDefault();
event.stopPropagation();

var href = '',
inputs = this.parentNode.getElementsByTagName('input')
for(var i=0;i<inputs.length;i++){
     if(inputs[i].getAttribute('name') == 'scenarionum' && inputs[i].checked){
         href = inputs[i].getAttribute('data-href');
         value= inputs[i].getAttribute('value');
         window.location = href;
     }
}
}

</script>

<head>
<title>Hello</title>
</head>

<body>
<form method="post" name="start" action="./test.pl">
<div class="Folder">
<input type="radio" name="scenarionum" value="Run Suite" data-href="test.pl"/>Suite</div>
<input type="submit" value="Run" id="btnFormSubmit" />
</form>
</body>
</html>

这很好用。当我点击“提交”按钮时,它会将我带到“test.pl”页面,但我想将其与单选按钮的值重定向(在这种情况下为“运行套件”)

请告诉我javascript中的修改以重定向到test.pl以及值“Run Suite”

4 个答案:

答案 0 :(得分:1)

删除所有JavaScript,表单将按预期工作。 HTML表单已经知道如何向脚本提交值。

答案 1 :(得分:0)

将值作为请求参数添加到网址:

 if(inputs[i].getAttribute('name') == 'scenarionum' && inputs[i].checked){
     href = inputs[i].getAttribute('data-href');
     value= inputs[i].getAttribute('value');
     window.location = href + "?scenarionum=" + value;
 }

答案 2 :(得分:0)

发送GET

您可以将其添加到网址中,如下所示:

window.location = href+"?value="+value;

Example in JSFiddle

发送帖子

如果您希望表单发送POST,您可以执行以下操作:

if(inputs[i].getAttribute('name') == 'scenarionum' && inputs[i].checked){
     document.getElementById("myForm").action = inputs[i].getAttribute('data-href');
     document.getElementById("myForm").submit();
}

你还必须给你的表单一个id,所以可以用getElementByID找到它,或者你可以使用

document.getElementsByName("start")[0].

Example in JSFiddle

答案 3 :(得分:0)

使用以下内容更改提交输入。它有效,只是经过测试。

<input type="submit" value="Run" id="btnFormSubmit" onclick="document.forms['start'].action=document.getElementById('scenarionum').checked ? './test.pl?scenarionum=' + document.getElementById('scenarionum').value : './test.pl'" />