需要有关简单JavaScript的帮助

时间:2011-01-22 00:32:26

标签: javascript

我需要javascript的帮助。我需要创建一个名为“keywords”的隐藏输入,并编写一个JS函数,在提交表单时使用选中复选框的值填充它。


首先,我必须将“,”更改为“|”因为这是ExpressionEngine的正确语法。但由于某种原因,如果有“|”,搜索将无法正常工作最后。

因此,例如,如果我选择三个复选框,隐藏关键字框的输出是Aberdeen | Harrisburg | Avon |这不适用于搜索,但如果我手动输入Aberdeen | Harrisburg | Avon没有“|”最后,搜索将起作用。

那我怎么能改变这一行没有“|”在关键字的末尾 templateValues + = checkBox.value +“|”;

2 个答案:

答案 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);