Ответ 1
событие load
будет называться моментом, когда будут загружены все дочерние элементы прослушанного элемента. в вашем случае это может быть до того, как будет вызвано событие готовности, таким образом, ваш обработчик загрузит (который добавляется после document.ready) бесполезно.
для справки см. JQuery api, где вы найдете следующее:
Событие загрузки отправляется элементу, когда он и все подэлементы были полностью загружены. Это событие может быть отправлено любому элементу, связанному с URL: изображениями, сценариями, фреймами, iframe и объектом window.
это также означает, что вам нужен URL-адрес, поэтому вы можете прослушивать событие загрузки. так как вы не предоставили дополнительный код, я предполагаю, что у вас действительно есть URL-адрес, который вы можете прослушать.
Это может быть наиболее вероятной причиной. если у вас нет связанного с URL с (по крайней мере одним) дочерним элементом (s) не будет никакого события загрузки, которое вы можете прослушать.
попробуйте это вместо:
$(document).ready(function(){
checkUserVal();
$('.user').on('change', checkUserVal);
});
var checkUserVal = function(){
//do the check
if($('.user').val() == 'client'){
$('#user_parent').removeAttr('disabled').closest('tr').show(200);
}else{
$('#user_parent').attr('disabled', 'disabled').closest('tr').hide(200);
}
};
i сделал код более удобным для чтения способом;)