Javascript使用regexp id搜索有选择地清除表单输入

Javascript使用regexp id搜索有选择地清除表单输入,javascript,forms,matching,Javascript,Forms,Matching,这与我目前找到的解决方案有点不同。我所拥有的是一个包含近500个标记的HTML表单(一个基于浏览器的时间卡输入,占整个7天的15小时窗口,输入间隔为15分钟)。我将这些输入标签命名为相当直观的标签。周一的输入名为M600、M615、M630、M645、M700。。。M2100。星期二的是T、W等等。它们都是单一形式的,提交时JSON对所有内容进行编码,并将其写入文本数据库,以便稍后动态调用。如果表单尚未提交(通过一个隐藏的标记来检测提交内容),页面将从JSON文件中提取并解码值作为默认输入值输入

这与我目前找到的解决方案有点不同。我所拥有的是一个包含近500个标记的HTML表单(一个基于浏览器的时间卡输入,占整个7天的15小时窗口,输入间隔为15分钟)。我将这些输入标签命名为相当直观的标签。周一的输入名为M600、M615、M630、M645、M700。。。M2100。星期二的是T、W等等。它们都是单一形式的,提交时JSON对所有内容进行编码,并将其写入文本数据库,以便稍后动态调用。如果表单尚未提交(通过一个隐藏的标记来检测提交内容),页面将从JSON文件中提取并解码值作为默认输入值输入表单

我想做的是为每天创建一个html链接,只清除当天的一组值。我想这会从链接(或按钮)onClick事件中触发,并运行一个类似于form.field.this.value(“”)的脚本。但是,我需要引用所有输入,而不是引用“this”,而是使用等效于正则表达式搜索字符串的值,例如,$(M\d)^

在算法意义上:

<input type="text" value="1234" name="M900"/>
<input type="text" value="3456" name="M915"/>
<input type="text" value="1234" name="T900"/>
<input type="text" value="3456" name="T915"/>
<a onClick="clearMondayOnly">Clear Monday's Fields</a>

<script>
function clearMondayOnly() {

  for each input element where name matches "M###" do
   $0.value=""
  end
}
</script>

清理星期一的田地
函数clearMondayOnly(){
对于名称与“M####”匹配的每个输入元素,请执行以下操作
$0.value=“”
结束
}
诚然,我并不精通javascript,但我相信如果我知道如何启动匹配字符串,我可以混过去。此外,我想尝试避免使用jQuery对象之类的东西,因为我相信这可以通过直接使用JS来完成


谢谢。

如果我找到你,你只需要(星期天):

完整的代码是

<a clear="M" >Clear Monday's Fields</a>
...
<a clear="Su" >Clear Sundays</a>
<script>
    $('a[clear]').click(function(){
      $('input[name^="'+$(this).attr('clear')+'"]').val('');
    });
</script>

类似的内容应该可以在普通的现代JavaScript中使用:

function clearDays() {

  var days = [].slice.call( arguments ),
      inputs = document.querySelectorAll(
        'input[name^='+ days.join('], input[name^=') +']'
      );

  [].forEach.call( inputs, function( input ) {
    input.value = '';
  });

}
你可以这样称呼它:

clearDays('M');
clearDays('M','T');
clearDays('M','W','Su');
// etc...

这带来了许多问题。例如,星期二和星期四之间有什么区别?我把星期二的输入集命名为T####,而星期四是R####,星期六是s#########,星期天是Su#########+1很好的解决方案,尽管我不太明白它是如何工作的。@sealkin租几天,你就会看到它是如何工作的。它基本上只是从arguments数组中创建一个选择器,然后在每个元素上迭代并清除值。谢谢你。我刚刚从这段代码中学到了很多。太棒了。这工作非常出色,除了因为某些原因,没有href的锚不会给出clicka不可编辑的链接,以及那些完全刷新页面的链接,但是我能够在一个按钮中激活脚本,而且效果非常好!
clearDays('M');
clearDays('M','T');
clearDays('M','W','Su');
// etc...