仅从具有 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 中的数据库
如何使用 jquery 创建具有来自动态创建的表单字段的值的多维数组?