Javascript 从选择中选择选项后自动选中复选框-仅适用于FF
我有这样的想法,但它在FF上工作,但不想在chrome、opera或safari中使用。我不知道为什么。。。你知道吗?如何修复它Javascript 从选择中选择选项后自动选中复选框-仅适用于FF,javascript,Javascript,我有这样的想法,但它在FF上工作,但不想在chrome、opera或safari中使用。我不知道为什么。。。你知道吗?如何修复它 <html> <head> <script src='http://code.jquery.com/jquery-2.1.0.min.js'></script> </head> <body> <form> <select name="visitData[client_id]"
<html>
<head>
<script src='http://code.jquery.com/jquery-2.1.0.min.js'></script>
</head>
<body>
<form>
<select name="visitData[client_id]" class="input input-select">
<option onclick="$('#visit-paid').prop('checked', true);" value="67"> true</option>
<option onclick="$('#visit-paid').prop('checked', true);" value="77">true</option>
<option onclick="$('#visit-paid').prop('checked', false);" value="42">false</option>
<option onclick="$('#visit-paid').prop('checked', true);" value="14">true</option>
<option onclick="$('#visit-paid').prop('checked', true);" value="50">true</option>
<option onclick="$('#visit-paid').prop('checked', false);" value="26">false</option>
</select>
<input type="checkbox" name="visitData[paid]" value="1" class="input input-checkbox" id="visit-paid"/>
<br/><input type="submit" value="Add">
</form>
</body></html>
真的
真的
假的
真的
真的
假的
代码看起来正常。试试下面的方法
<select name="visitData[client_id]" class="input input-select" id="dropDown">
<option value="67"> true</option>
<option value="77">true</option>
<option value="42">false</option>
<option value="14">true</option>
<option value="50">true</option>
<option value="26">false</option>
</select>
//jquery
$(document).on('click','#dropDown option',function(){
$('#visit-paid').prop('checked', $.trim($(this).text()));
});
真的
真的
假的
真的
真的
假的
//jquery
$(文档).on('单击','下拉选项',函数()){
$('#已付费访问').prop('checked',$.trim($(this.text()));
});
您可以为选项使用额外属性。如果为true
,则在本例中有一个名为数据检查的属性
<select name="visitData[client_id]" class="input input-select">
<option value=""></option>
<option data-check="true" value="67">foo</option>
<option data-check="true" value="77">foo</option>
<option value="42">bar</option>
<option data-check="true" value="14">foo</option>
<option data-check="true" value="50">foo</option>
<option value="26">bar</option>
</select>
$('.input-select').on('change', function () {
var check = ($('option:selected', this).attr('data-check') ? true : false);
$('#visit-paid').prop('checked', check);
});
福
福
酒吧
福
福
酒吧
$('.input select')。打开('change',函数(){
变量检查=($('option:selected',this).attr('data-check')?true:false);
$(“#访问已支付”).prop('已检查',检查);
});
试试这样的方法
<select name="visitData[client_id]" class="input input-select">
<option value="67"> true</option>
<option value="77">true</option>
<option value="42">false</option>
<option value="14">true</option>
<option value="50">true</option>
<option value="26">false</option>
</select>
<script>
$(".input-select").change(function()
{
var t=$.trim($(".input-select :selected").text());
$('#visit-paid').prop('checked',t.bool());
})
String.prototype.bool = function()
{
return (/^true$/i).test(this);
};
</script>
真的
真的
假的
真的
真的
假的
$(“.input select”).change(函数()
{
var t=$.trim($(“.input-select:selected”).text();
$(“#访问已付费”).prop('checked',t.bool());
})
String.prototype.bool=函数()
{
返回(/^true$/i)。测试(此);
};
好的,但我的代码中当然有不同的文本beetween选项:)。。。没有真或假,所以我必须以不同的方式来做。你可以把数据-*属性放在选项标签中,表示真或假。然后jquery将是$('#visit paid').prop('checked'),$.trim($(this.attr('data-value'))$(“#访问已付费”).prop('checked',$.trim($(this.text());这不起作用选项文本在他的代码中不是“真”或“假”。对不起,我忘了检查