禁用“提交”按钮

时间:2016-02-24 08:35:58

标签: javascript jquery html forms

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

示例:

假设我已经在数据库中设置了10个数量,那么select元素将显示1-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<=@$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"/>';
                    }
                    ?>

在javascript部分,我设置了一个函数,将表单提交到php文件并加载其响应文本。

代码:

$(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');
            }

        }
    })
})
})    

我想要做的是,当商品的数量售罄时,提交按钮会被禁用。是否可能?如果是,那么如何做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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
});

答案 2 :(得分: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);
   }

这就是我所做的。它工作。但是没有正确的方法来做到这一点,但它完成了工作。停止提交按钮发送任何请求。