需要简单JavaScript的帮助吗
我需要javascript方面的帮助。我需要创建一个名为“关键字”的隐藏输入,并编写一个JS函数,在提交表单时用复选框的值填充它需要简单JavaScript的帮助吗,javascript,Javascript,我需要javascript方面的帮助。我需要创建一个名为“关键字”的隐藏输入,并编写一个JS函数,在提交表单时用复选框的值填充它 首先,我必须将“,”改为“|”,因为这是ExpressionEngine的正确语法。但由于某种原因,如果最后有一个“|”,搜索将不起作用 例如,如果我选中三个复选框,则隐藏关键字框的输出为Aberdeen | Harrisburg | Avon |,这不适用于搜索,但如果我在最后手动输入Aberdeen | Harrisburg | Avon,且不带“|”,则搜索将
首先,我必须将“,”改为“|”,因为这是ExpressionEngine的正确语法。但由于某种原因,如果最后有一个“|”,搜索将不起作用 例如,如果我选中三个复选框,则隐藏关键字框的输出为Aberdeen | Harrisburg | Avon |,这不适用于搜索,但如果我在最后手动输入Aberdeen | Harrisburg | Avon,且不带“|”,则搜索将起作用 那么,我如何才能将这一行更改为在关键字末尾没有“|”呢 templateValues+=checkBox.value+“|” 试试这个:
<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>
函数populateTemplateValues()
{
var复选框=document.getElementsByName(“模板”);
var len=复选框。长度;
var templateValues=“”;
对于(var i=0;我是否使用JavaScript库?为什么?关于选中哪些复选框的信息已经发送到服务器(因为复选框将自己提交该数据)。这只是重复了工作(并且由于它增加了对JavaScript的依赖性,所以不太可靠)。我之所以需要它,是因为我正在使用ExpressionEngine搜索,并且要搜索多个术语,我需要使用JavaScript在ExpressionEngine中的关键字搜索中动态放置选中的复选框值。如果这有任何意义,则内联脚本和onsubmit
属性会按照惯用方式被适当的外部脚本文件取代使用document.getElementById()
和编程DOM元素挂钩。很抱歉,作为一个新手,我应该在哪里放置表单操作?除了操作值之后的;之外,其他都是正确的。删除它。但是在您的示例/演示中,我应该在哪里放置“表单操作”@Tomalak?我希望不是:)一个懒惰的程序员会带来灾难。我认为这是旧习惯和对丑陋的结构漠不关心的结合。
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);