仅从具有 id 作为 JQuery 数组的表单中获取数值?

Posted

技术标签:

【中文标题】仅从具有 id 作为 JQuery 数组的表单中获取数值?【英文标题】:Get numeric value only from form that has ids as array with JQuery? 【发布时间】:2017-03-16 10:13:01 【问题描述】:

我正在寻找解决方案,但没有找到任何解决方案

我有这个代码:

<form name="frm_hs100">
    <input id="hs100[1]" name="hs100[1]" type="checkbox">
    <input id="hs100[2]" name="hs100[2]" type="checkbox">
</form>

$('[name^=hs100]').click(function() 
    if ($(event.target).is(":checked"))
        //true
    
    else 
        //false
      
    console.log(event.target.id);
    );

console.log 打印“hs100[1]”,但如何根据单击的复选框仅获得 #1 或 #2?

【问题讨论】:

使用 string.replace? 【参考方案1】:

使用类和数据属性

$('.my_box').on('click', function() 
    if ( this.checked )
        //true
     else 
        //false
    
    console.log( $(this).data('value') );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="frm_hs100">
    <input id="hs100[1]" class="my_box" data-value="1" name="hs100[1]" type="checkbox">
    <input id="hs100[2]" class="my_box" data-value="2" name="hs100[2]" type="checkbox">
</form>

【讨论】:

太好了,看起来数据值对我来说是最好的选择。非常感谢【参考方案2】:

如果 id 总是以 'hs100[' 开头并以 ']' 结尾,那么您可以简单地去掉这些字母并用空格替换它们。

$('[name^=hs100]').click(function() 
if ($(event.target).is(":checked"))
    //true

else 
    //false
  
var $consolePrint = event.target.id.replace('hs100[','').replace(']','');
console.log($consolePrint);
);

我把打印出来的数字变成了一个变量,方便阅读。

我还注意到,无论我是选中还是取消选中复选框,控制台日志都在输出数字,这就是你想要的吗?

【讨论】:

谢谢,这也是一个很好的解决方案。是的,我需要为每个复选框单击触发

以上是关于仅从具有 id 作为 JQuery 数组的表单中获取数值?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 将表单数据作为数组传递给 Laravel

如何使用 JQuery 将 HTML 表单字段作为数组直接传递到 CodeIgniter 中的数据库

使用具有特定 ID 的 jquery 提交表单

如何使用 jquery 创建具有来自动态创建的表单字段的值的多维数组?

Bigquery:是不是有一种 json 路径方法可以仅从具有动态键的 json 数组中提取值?

jquery .html() 仅从handsontable返回一些行