好的,所以我环顾其他论坛,看不出为什么我的仍在...... GAH。 我调用了preventDefault(),因此表单不会提交。我已尝试将操作设置为空,然后甚至根本不在表单标记上提供操作属性。
我也尝试将提交按钮作为按钮而不是提交,但它似乎仍然不想工作。表单仍然在提交页面时加载...当我不想要它时。我正在尝试使用AJAX更新用户商店中商品的价格,以便更新价格的价值,而无需在span标签中重新加载页面。
HTML:
<form id="price_form" method="POST" action="http://alkharia.localhost/user/shop/priceitem/3" accept-charset="UTF-8"><input type="hidden" name="csrf_token" value="P0oW2VxJ6HTg79ksIYl6U3R5QKapeFGwkkUKiNlQ">
<div class="row clearfix">
<div class="full">
<label for="price">Price</label>
<input maxlength="6" type="text" name="price" value="0" id="price"> </div>
</div>
<div class="row">
<div class="full">
<input type="hidden" name="item_id" value="3">
<input type="submit" value="Submit"> </div>
</div>
</form>
JQuery的:
$('#price_form').submit(function(e) {
e.preventDefault();
var price = $('#price').val();
if((Math.floor(price) == price) && ($.isNumeric(price)) && (price.length <= 6)) {
var itemID = $('#item_id').val();
$.ajax({
type: 'POST',
url: 'http://'+urlBase+'/user/shop/priceit/'+itemID+'/'+price,
success: function(msg) {
$('#cur_price_'+itemID).html(msg);
}
});
} else {
alert('You can only enter an integer that is less than 999,999!');
return false;
}
});
答案 0 :(得分:1)
将提交更改为按钮,您可以将JS绑定到单击事件。
Difference between <input type='button' /> and <input type='submit' />
答案 1 :(得分:1)
好吧好像脚本文件没有以某种方式被包含..即使它显示..但我不知道因为我正在使用javascript对话框,我不得不包括该脚本再次对话框的底部。但是,当我这样做时,它修复了一切......看起来很奇怪。但是我仍然标记另一个问题,因为返回false或者比e.preventDefault()更好的替代;
答案 2 :(得分:0)
我会完全删除e.preventDefault()
,并将return false;
移到if / else语句之外。
如果满足您的条件,则进行AJAX调用。如果不是,则显示警报。无论哪种方式,表格都没有提交。
编辑版:
$('#price_form').submit(function(e) {
var price = $('#price').val();
if((Math.floor(price) == price) && ($.isNumeric(price)) && (price.length <= 6)) {
var itemID = $('#item_id').val();
$.ajax({
type: 'POST',
url: 'http://'+urlBase+'/user/shop/priceit/'+itemID+'/'+price,
success: function(msg) { $('#cur_price_'+itemID).html(msg); }
});
} else {
alert('You can only enter an integer that is less than 999,999!');
}
return false;
});
答案 3 :(得分:-1)
将'submit'输入替换为锚标记,将href设置为#并将ajax函数绑定到该位置。
答案 4 :(得分:-1)
将事件绑定到输入[type = submit]点击事件,而不是表单提交。