我在选择框中有以下代码和三个选项,它们应该在输入字段/ textarea / select中动态启用/禁用属性“disable”,但代码根本不起作用:
$(document).ready(function() {
$('.fieldcontent').not('.info').hide();
$('#selector_cs').change(function() {
$('.fieldcontent').customFadeOut(100);
$('.' + $(this).val()).customFadeIn(900);
// $('input').prop('disabled',false);
//$('textarea').prop('disabled',false);
//$('select').prop('disabled',false);
//option1
if ($("this:selected").val() === 'help') {
$("textarea[name='message']").prop('disabled',false);
$("input[name='domain']").prop('disabled',false);
}else{
$("textarea[name='message']").prop('disabled',true);
$("input[name='domain']").prop('disabled',true);
};
//option2
if ($("this:selected").val() === 'info') {
$("textarea[name='message']").prop('disabled',false);
}else{
$("textarea[name='message']").prop('disabled',true);
};
//option3
if ($("this:selected").val() === 'products') {
$("textarea[name='message']").prop('disabled',true);
$("select[name='products']").prop('disabled',false);
$("input[name='domain']").prop('disabled',false);
$("input[name='address']").prop('disabled',false);
$("input[name='state']").prop('disabled',false);
$("input[name='city']").prop('disabled',false);
$("input[name='country']").prop('disabled',false);
};
}); });
有人可以帮我正确编写代码吗?
提前感谢您提供任何帮助
编辑:感谢@Ken和@arun的快速帮助。现在jQuery正在运行。
但是:我有一个PHP验证,它没有通过jQuery禁用的fiedls传递。为什么呢?
否则,我不想通过jquery添加/删除动态隐藏字段,因为当用户收到邮件时,他会看到隐藏字段值,这些值不是“真实”值,而是具有“ some1“,”some2“ecc。
如何避免这种情况并使用diasabled字段代替传递php验证?
答案 0 :(得分:2)
您的选择器$("this:selected").val()
错误,应该$(this).val()
获取所选值
$(document).ready(function() {
$('.fieldcontent').not('.info').hide();
$('#selector_cs').change(function() {
$('.fieldcontent').customFadeOut(100);
$('.' + $(this).val()).customFadeIn(900);
// $('input').prop('disabled',false);
//$('textarea').prop('disabled',false);
//$('select').prop('disabled',false);
//option1
if ($(this).val() === 'help') {
$("textarea[name='message']").prop('disabled',false);
$("input[name='domain']").prop('disabled',false);
}else{
$("textarea[name='message']").prop('disabled',true);
$("input[name='domain']").prop('disabled',true);
};
//option2
if ($(this).val() === 'info') {
$("textarea[name='message']").prop('disabled',false);
}else{
$("textarea[name='message']").prop('disabled',true);
};
//option3
if ($(this).val() === 'products') {
$("textarea[name='message']").prop('disabled',true);
$("select[name='products']").prop('disabled',false);
$("input[name='domain']").prop('disabled',false);
$("input[name='address']").prop('disabled',false);
$("input[name='state']").prop('disabled',false);
$("input[name='city']").prop('disabled',false);
$("input[name='country']").prop('disabled',false);
};
});
});
演示:Fiddle
答案 1 :(得分:1)
将$(“this:selected”)。value()更改为$(this).value()应解决您的问题
$(document).ready(function () {
$('.fieldcontent').not('.info').hide();
$('#selector_cs').change(function () {
$('.fieldcontent').customFadeOut(100);
$('.' + $(this).val()).customFadeIn(900);
// $('input').prop('disabled',false);
//$('textarea').prop('disabled',false);
//$('select').prop('disabled',false);
//option1
if ($(this).val() === 'help') {
$("textarea[name='message']").prop('disabled', false);
$("input[name='domain']").prop('disabled', false);
} else {
$("textarea[name='message']").prop('disabled', true);
$("input[name='domain']").prop('disabled', true);
}
//option2
if ($(this).val() === 'info') {
$("textarea[name='message']").prop('disabled', false);
} else {
$("textarea[name='message']").prop('disabled', true);
}
//option3
if ($(this).val() === 'products') {
$("textarea[name='message']").prop('disabled', true);
$("select[name='products']").prop('disabled', false);
$("input[name='domain']").prop('disabled', false);
$("input[name='address']").prop('disabled', false);
$("input[name='state']").prop('disabled', false);
$("input[name='city']").prop('disabled', false);
$("input[name='country']").prop('disabled', false);
}
});
});