У меня есть проверка 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