我有一个选择选项,我需要选择一个产品,然后选择一种产品。 在这两个选择之后我需要为它选择类别。 如果我选择某个产品并输入,它将自动为其选择一个类别,它将阻止类别选项。
为此我做了这个条件:
$( ".target" ).change(function() {
var type = $('.target[data-prod=type]').val();
var product = $('.target[data-prod=product]').val();
if (type == '1' && product =='pillow') {
$('#unhide').removeClass('hidden');
$('.category').prop('disabled', true);
$('div.cte select').val('color'); //this is wrong? not getting value of it after submit
}else{
$('#unhide').addClass('hidden');
}
});
BTW我的类别选择选项是动态的:
<div class="form-group cte">
<label>Categoria</label>
<select name="categoria" class="form-control category">
<?php
$sel_cat = "SELECT category_name FROM gallery_category ORDER BY category_name ASC";
$run_cat = mysqli_query($conn,$sel_cat);
while($rows = mysqli_fetch_assoc($run_cat)){
echo ' <option value="'.$rows['category_name'].'">'.ucfirst($rows['category_name']).'</option>';
}
?>
</select>
</div>
我想选择此选项:
<option value="color'">Colors</option>
所以我可以在提交后获得它的价值。 我提交时,我的类别值是空的,我该怎么办?
观测值: (我不太擅长jquery)
我知道这个php查询很容易受到攻击,只是这样就可以轻松实现。
答案 0 :(得分:1)
硬编码你可以这样选择:
$('[name=categoria]').val( 3 ); // select with index :3
这对你不起作用,因为你提到你的选项是动态的,所以我们需要从文本中选择它:
$('[name=categoria] option').filter(function() {
return ($(this).text() == 'Colors'); //To select on the string Colors
}).prop('selected', true);
或动态使用值:
$('[name=categoria] option').filter(function() {
return ($(this).val() == 'color'); //To select on the value color
}).prop('selected', true);
答案 1 :(得分:1)
将禁用的属性添加到表单输入使它们在提交的数据中不可用。您正在禁用此行中的选择:
$('.category').prop('disabled', true);
这就是你获得空值的原因。尝试在表单提交时启用它以允许数据访问,如下所示:
$('#myFormId').submit(function() {
$('.category').prop('disabled', false);
});