我需要javascript的帮助。我需要创建一个名为“keywords”的隐藏输入,并编写一个JS函数,在提交表单时使用选中复选框的值填充它。
首先,我必须将“,”更改为“|”因为这是ExpressionEngine的正确语法。但由于某种原因,如果有“|”,搜索将无法正常工作最后。
因此,例如,如果我选择三个复选框,隐藏关键字框的输出是Aberdeen | Harrisburg | Avon |这不适用于搜索,但如果我手动输入Aberdeen | Harrisburg | Avon没有“|”最后,搜索将起作用。
那我怎么能改变这一行没有“|”在关键字的末尾 templateValues + = checkBox.value +“|”;
答案 0 :(得分:1)
试试这个:
<form action="sdmlsurvey.com/search/eresults" method="post" onsubmit="populateTemplateValues()">
<script type="text/javascript">
function populateTemplateValues()
{
var checkBoxes = document.getElementsByName("template");
var len = checkBoxes.length;
var templateValues = "";
for(var i=0; i<len; i++)
{
var checkBox = checkBoxes[i];
if(checkBox.checked)
templateValues += checkBox.value + "|";
}
document.getElementsByName("keywords")[0].value = templateValues.replace(/\|$/g, "");
alert(document.getElementsByName("keywords")[0].value );// Remove this in actual script. This is just for demo.
return true;
}
</script>
<input type="hidden" name="keywords" value=""/>
<input type="checkbox" name="template" value="1"/> 1<br/>
<input type="checkbox" name="template" value="2"/> 2<br/>
<input type="checkbox" name="template" value="3"/> 3<br/>
<input type="submit" value="Submit"/>
</form>
答案 1 :(得分:0)
function removeTrailingPipe(mytext){
mytextarray=mytext.split('|');
while(mytextarray[mytextarray.length-1]==''){
mytextarray.slice(0,mytextarray.length-1);
}
return mytextarray.join('|');
}
mytext='red|green|blue|yellow|';
mytext=removeTrailingPipe(mytext);