在条件jquery

时间:2017-03-08 14:48:24

标签: php jquery

我有一个选择选项,我需要选择一个产品,然后选择一种产品。 在这两个选择之后我需要为它选择类别。 如果我选择某个产品并输入,它将自动为其选择一个类别,它将阻止类别选项。

为此我做了这个条件:

 $( ".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查询很容易受到攻击,只是这样就可以轻松实现。

2 个答案:

答案 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);
});