2016-02-24 136 views
1

我有一个表单,其中包含多个元素,其中一个是select value元素。但是我所做的是我附加了必须在选择菜单上显示的数量,其值来自数据库。禁用Submit按钮

例子:

想我已经在我的数据库数量,然后,选择元素会告诉我从1-10选项设置10。

代码:

   <?php 
        if(@$dbqty>=10) 
        { 
         $selectbox='<p> Quantity: <select name="product_qty">'; 
         for($i=1;$i<=10;$i++) 
         { 
          $selectbox.='<option value="'.$i.'">'.$i.'</option>'; 
         } 
         $selectbox.='</select></p>'; 
         echo $selectbox; 
        } 
        else if(@$dbqty<10 && @$dbqty>0) 
        { 
         $selectbox='<p> Quantity: <select name="product_qty">'; 
         for($i=1;$i<[email protected]$dbqty;$i++) 
         { 
          $selectbox.='<option value="'.$i.'">'.$i.'</option>'; 
         } 
         $selectbox.='</select></p>'; 
         echo $selectbox; 

        } 
        if(@$dbqty==null || @$dbqty==0) 
        { 
         echo '<input type="button" name="product_qty" value="Sold Out" disabled="disabled"/>'; 
        } 
        ?> 

在我已经设置其提交表单的PHP文件并加载它的响应文本功能的JavaScript部分。

代码:

$(document).ready(function(){ 
$(document).on('submit','#submitform',function(event){ 
    event.preventDefault(); 
    var button_content = $(this).find('button[type=submit]'); 
    button_content.html('Adding...'); 
    var data=$(this).serialize(); 
    $.ajax({ 
     type:'POST', 
     url:'../cart/index.php', 
     data:data, 
     success : function(content) 
     { 
      if ($('#ajaxview').find('#popupcart')) { 
       $('#popupcart').hide(); 

       $('#ajaxview').append(content); 
       button_content.html('Add'); 
      } 
      else 
      { 
       $('#ajaxview').append(content); 
       button_content.html('Add'); 
      } 

     } 
    }) 
}) 
})  

什么,我试图做的是,当该项目的量出来是售罄提交按钮得到disabled.Is这可能吗?如果是,那么如何做到这一点呢?

谢谢!

回答

1
$(document).on('submit','#submitform',function(event){ 
     event.preventDefault(); 
     var input=$("#submitform :input[name='product_qty']").val(); 
     if(input==null) 
      $(this).find('button[type=submit]').prop('disabled', true); 
    } 

这是我did.It worked.However不正确的方法来做到这一点,但它确实work.Stops提交按钮发送的任何请求。

2

在我看来,一种更好的方法是使用javascript从数据库获取数据,然后根据检索到的值使用jQuery来启用/禁用按钮。

+0

在我看来。将db连接到Javascript并不是一个好主意。安全问题。伴侣。 –

+1

我的意思是使用AJAX调用从数据库获取数据,并使用jQuery在客户端执行所有处理。 – brokensax

2

使用这个jQuery取消对具有价值的按钮提交事件售罄

$('input[value="Sold Out"]').on('click',function(e){ 
    e.preventDefault(); //stop the event 
}); 

或者,如果元素是动态追加,那么你必须使用委托的事件处理程序附加事件。像下面

$(document).on('click','input[value="Sold Out"]',function(e){ 
    e.preventDefault(); //stop the event 
}); 
+0

你确定你正确阅读我的问题吗? –

+0

你认为我的理解错了吗?我以为你想停止提交的表格,如果价值已经售罄 –

+0

我试过了,它没有工作:) –