我有一个具有选择输入的表单。它的方法是GET。
<form method="get" action="index.php">
<select name="select[]" multiple>
<option value="0">Option1</option>
<option value="1">Option2</option>
<option value="2">Option3</option>
<option value="3">Option4</option>
<option value="4">Option5</option>
</select>
</form>
如果我选择选项2和4,则网址将如下所示:mydomain.com/index.php?select [] = 2&amp; select [] = 4
我希望它看起来像(最好没有方括号)
mydomain.com/index.php?select=2+4
我怀疑我需要一个客户端解决方案,但我不知道任何javascript。或者首先加载一个改变值的页面,然后重定向到带有标题的新页面(位置:'')?
答案 0 :(得分:1)
似乎你的意图是对值进行求和并返回(6)而不是(4 + 2)。以下代码片段同时执行,使用您想要的那个并废弃另一个。
<form method="get" action="">
<select multiple id="selector">
<option value="0">Option1</option>
<option value="1">Option2</option>
<option value="2">Option3</option>
<option value="3">Option4</option>
<option value="4">Option5</option>
</select>
<input type=hidden name=select1 value=0 id=hiddenSelect1>
<input type=hidden name=select2 value=0 id=hiddenSelect2>
<input type=button onclick=showw();>
<input type=submit onclick="return sumValues();">
</form>
<script>
function sumValues()
{
var values = $('#selector').val();
if (values === null)
{
$('#hiddenSelect1').val("");
$('#hiddenSelect2').val(0);
}
else
{
var valstring = values.join("+");
//string (1+2+...)
$('#hiddenSelect1').val(valstring);
//actually sum them
var sum = 0;
values = valstring.split("+");
for (var i = 0, len = values.length; i < len; i++)
{
sum += parseFloat(values[i]);
}
$('#hiddenSelect2').val(sum);
}
return true;
}
</script>