我尝试从选择菜单中删除禁用属性的代码块将我的复选框验证返回为true。如何在不弄乱我的验证的情况下正确删除已禁用的属性?
while($row = mysqli_fetch_assoc($query)){
echo "<h5><input class='check' panel-menu='menu$index'
type='checkbox' name='roomType[]' id='roomType[$index]'
value='".$row['roomDetailsNo']."'> Choose this Room";
echo "<br>Number of Rooms: ";
echo "<select id='menu$index' name='noOfRooms[".$row['roomDetailsNo']."][]' disabled>";
$rooms = 0;
while($rooms <= $row['available_rooms']){
echo "<option>";
echo $rooms;
echo "</option>";
$rooms++;
}
echo "</select><br>";
}
这是我的jquery
<script>
$(function(){
$('#btn').on('click', function(){
var check = $("input:checked").length;
if(check <= 0){
alert("Please Choose a Room");
return false;
}
else{
$('.check').on('click', function{
var check = $(this).attr('panel-menu');
checkbox = $('#'+check).is(':checked');
if(checkbox){
$('#'+check).prop('disabled', false);
alert("checked");
}
});
return true;
}
});
});
</script>
答案 0 :(得分:1)
在这种情况下,不要将一个function retr_decs(args) {
return /\./.test(args) && args.match(/\..*/)[0].length - 1 || "no decimal found"
}
console.log(
retr_decs("23.456") // 3
, retr_decs("9.450") // 3
, retr_decs("123.01") // 2
, retr_decs("123") // "no decimal found"
)
事件处理程序包含在另一个click
事件处理程序中
分别验证click
和#btn
点击次数:
.check
您应使用data-*
属性,而不是自定义$('#btn').on('click', function(){
var check = $("input:checked").length;
if(check <= 0){
alert("Please Choose a Room");
return false;
}
});
// you missing parenthesis for function "()":
$('.check').on('click', function(){
// use data-* attributes (explanation below the code)
var check = $(this).attr('data-panel-menu');
if($(this).is(':checked')){
$('#'+check).prop('disabled', 0);
}else{
// if checkbox isn't checked, set the first option as default:
$('#'+check).prop('disabled', 1).children(':first').prop('selected', 1);
}
});
属性。 See why