我有一个包含多个元素的表单,其中一个是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');
}
}
})
})
})
我想要做的是,当商品的数量售罄时,提交按钮会被禁用。是否可能?如果是,那么如何做到这一点?
谢谢!
答案 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);
}
这就是我所做的。它工作。但是没有正确的方法来做到这一点,但它完成了工作。停止提交按钮发送任何请求。