我的表单有jQuery验证。有一个收音机盒(出勤)和2个下拉菜单(颜色和阴影)。
如果用户第一次登录,它将完美运行。但是因为我根据他们之前选择的内容从数据库中检索了值,如果用户已经选择了他们的选择并重新登录,如果他们之前选择了“否”,则我的jQuery不起作用。这两个下拉菜单提交并且不会显示为灰色。但如果我点击“否”收音机盒就可以了。不确定jQuery或我的单选按钮是否存在问题。
如果用户第一次登录并选择“否”,则会立即显示灰色。
jQuery验证:
<script src="jquery.js"></script>
<script>
$( function(){
function validate(id){
var enabled = ($("input[name='attendance" + id + "']:checked").val() == 'Yes');
if(enabled){
//Please select option is selected
if($("#colour" + id)[0].selectedIndex == 0){
alert('Please make your colourselection');
return false;
}
//Please select option is selected
if($("#shade" + id)[0].selectedIndex == 0){
alert('Please select your shade');
return false;
}
}
return true;
};
$("input[name^='attendance']").click(function() {
var id = this.name.replace('attendance', '');
$("#colour" + id + ", #shade" + id).prop("disabled", this.value == 'No');
validate(id);
});
$("input:submit").click(function(){
var retVal = true;
$.each([1], function(i, val){
retVal = (validate(val) && retVal);
});
return retVal;
});
});
</script>
单选按钮:
<input name="attendance1" type="radio" id="Yes" value="Yes" checked="CHECKED" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?>/>Attend with pleasure
<br />
<input name="attendance1" type="radio" id="No" value="No" <?php if($row3['attendance1']=="No") { echo "checked"; }?>/>Decline with regret
答案 0 :(得分:0)
您在“是”单选按钮中添加了额外的 checked =“checked”,因此尽管从数据库中获取了值,它仍会一直保持检查状态,因此请尝试将其删除,例如,
<input name="attendance1" type="radio" id="Yes" value="Yes" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?>/>Attend with pleasure
<br />
<input name="attendance1" type="radio" id="No" value="No" <?php if($row3['attendance1']=="No") { echo "checked"; }?>/>Decline with regret
希望有所帮助
答案 1 :(得分:0)
我看到的问题是这部分
checked="CHECKED" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?>
如果$row3['attendance1']
为“是”,则会显示以下内容
checked="CHECKED" checked
所以这会造成问题。删除checked="CHEKCED"
部分。