2016-02-24 178 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

我試過了,它沒有工作:) –