新手在这里,我正在使用这两个jquery脚本一整天。当我触发第一个脚本时,第二个脚本将无效。
第一个脚本检查数据库中是否已存在某个产品名称,而第二个脚本是将数据条目保存在数据库中的功能。
当我解开第一个脚本时,它完全正常。 当产品名称存在时,它会禁用保存产品按钮, 当产品名称可用时,它会启用保存按钮。
如果数据条目没有冲突,您可以在数据库中保存详细信息,但是当我触发脚本将其保存到数据库(这是下面的第二个脚本)时,它不起作用。
以下是我的代码。
第一个脚本:
$('#prod_name').on('focusout',function(){
var prodname = $('#prod_name').val();
var compid = $('#compid').val();
$.ajax({
url : 'php/ajax.php',
type : 'POST',
async : false,
data : {
check : 1,
compid : compid,
pname : prodname
},
success: function(result){
if (result==1) {
alert('Product Name Already Exists! Please rename the product or give the product name a prefix');
$('#save_prod').prop('disabled',true);
}else{
$('#save_prod').prop('disabled',false);
}
}
});
});
第二个脚本
$('#save_prod').on('click', function(event){
event.preventDefault();
var prodname = $('#prod_name').val();
var prodcat = $('#prod_category').val();
var prodpo = $('#prod_po').val();
var prodbrand = $('#prod_brand').val();
var produnit = $('#prod_unit').val();
var compid = $('#compid').val();
var prodcmf = $('#prod_color').val();
var prodtech = $('#prod_spec').val();
var prodship = $('#prod_ship').val();
if(prodname == ""){
alert('Enter Product Name');
}else if(prodcat == ""){
alert('Select Product Category');
}else if(produnit == ""){
alert('Please select Unit');
}else if(prodpo == ""){
alert('Enter PO Number (if not applicable please input N/A)');
}else if(prodbrand == ""){
alert('Enter Product Brand (if not applicable please input N/A)');
}else if(prodcmf == ""){
alert('Define Color/Material/Finish (if not applicable please input N/A)');
}else if(prodtech == ""){
alert('Define Technical Specifications/Rating (if not applicable please input N/A)');
}else if(prodship == ""){
alert('Define Shipping Mark (if not applicable please input N/A)');
}else{
$.ajax({
url : 'php/ajax.php',
type : 'POST',
async : false,
data : {
prodsave : 1,
compid : compid,
pname : prodname,
pcat : prodcat,
punit : produnit,
ppo : prodpo,
pbrand : prodbrand,
pcmf : prodcmf,
ptech : prodtech,
pship : prodship
},
success: function(result){
if (result == 0) {
var new_prod = $('#prod_name').val();
$('#name_of_product').append('<option value="'+new_prod+ '">'+new_prod+'</option>');
$('#name_of_product').trigger("chosen:updated");
alert('New Product details has been saved!');
$('#prod_name').val("");
$('#prod_category').val("");
$('#prod_po').val("");
$('#prod_brand').val("");
$('#prod_unit').val("")
$('#compid').val("");
$('#prod_color').val("");
$('#prod_spec').val("");
$('#prod_ship').val("");
$('#bgw').hide(500);
$('#bgb').hide(500);
}else if(result == 1){
alert('There was a problem saving the product details. Pelase try again later.');
}else if (result == 2) {
alert("Please fill in all fields");
}else if(result == 3){
alert("Product Name already exists! Please press cancel and select from the list or if you are adding a new product, give the product a different name.");
}
}
});
}
});
任何帮助都会很高兴。
谢谢你们!
答案 0 :(得分:3)
我看到你在两个ajax脚本中都有相同的url即php/ajax.php
,有时浏览器会缓存ajax的响应,并将前面的ajax请求阻塞到相同的url,并将请求视为重复。
因此,对于此类情况,请始终使用 - cache: false
,以便浏览器将每个请求视为新请求,并且不会缓存或阻止它。