Я не совсем понимаю бизнес-логику того, как у вас построена форма и ваши требования, но ... на основании того, что вы здесь сказали, я бы сделал.
- функция записи для проверки всех параметров, изменения отключить / включить отправку, показать / скрыть div
- вызов функции под нагрузкой
- вызывать функцию для проверки всех опций каждый раз, когда изменяется значение опции
.
checkOptions();
$("select").change(checkOptions);
function checkOptions() {
var yesFound = false;
$("select").each(function(index, element) {
if ( $(element).val() == "Yes" ) {
yesFound = true;
}
});
if (yesFound) {
$("#hidden-div").show();
$("input[type=Submit]").attr("disabled","disabled");
} else {
$("#hidden-div").hide();
$("input[type=Submit]").removeAttr("disabled");
};
}
со слегка измененным HTML:
<form>
<select name="field4">
<option value="Yes">Yes</option>
<option value="No">No</option>
</select> I have read the information on the product(s)<br/>
<select name="field5">
<option value="Yes">Yes</option>
<option value="No">No</option>
</select> Do you have any allergies to any ingredients in product(s)?<br/>
<select name="field6">
<option value="Yes">Yes</option>
<option value="No">No</option>
</select> Are you pregnant?<br/>
<select name="field7">
<option value="Yes">Yes</option>
<option value="No">No</option>
</select> Have you ever used this type of product and had undesirable results?<br/>
<br/>
<input name="cmdSubmit" type="submit" value="Submit" />
</form>
<div id="hidden-div" style="display:none;">Hidden div only to appear if any of the four dropdowns are marked YES.</div>
Пример веб-страницы:
http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-disable-submit-dynamically.html
На нагрузке:
все опции «Нет», кроме одного:
все опции «Да»: