我创建了一个生成自定义输入的短代码:
function input_plus_moins() {
$output = "
<div data-role='controlgroup' data-type='horizontal' data-mini='true'>
<button id='plus' data-inline='true'>+</button>
<input type='text' name='number' id='number' value='0' />
<button id='minus' data-inline='true'>-</button>
</div>
";
return $output;
}
然后我可以通过使用jQuery
单击加号或减号按钮来递增或递减输入值$('#plus').unbind('click').bind('click', function () {
var value = $('#number').val();
value++;
$('#number').val(value);
});
$('#minus').unbind('click').bind('click', function () {
var value = $('#number').val();
value--;
$('#number').val(value);
});
每次点击任何按钮,都会提交表单。
如何修改JavaScript文件,以便仅在专门单击“提交”按钮时提交表单?
答案 0 :(得分:2)
使用preventDefault();
$('#plus').click(function (evt) {
evt.preventDefault();
var value = $('#number').val();
value++;
$('#number').val(value);
});
$('#minus').click( function (evt) {
evt.preventDefault();
var value = $('#number').val();
value--;
$('#number').val(value);
});
The difference between ‘return false;’ and ‘e.preventDefault();
答案 1 :(得分:2)
button
元素的默认类型是“submit”。将按钮类型更改为“按钮”:
function input_plus_moins() {
$output = "<div data-role='controlgroup' data-type='horizontal' data-mini='true'>" +
"<button id='plus' type='button' data-inline='true'>+</button>" +
"<input type='text' name='number' id='number' value='0' />" +
"<button id='minus' type='button' data-inline='true'>-</button>" +
"</div>";
return $output;
}
您还可以使用.on()
避免绑定/取消绑定,如下所示:
$(document).on('click', '#plus', function () {
var value = $('#number').val();
value++;
$('#number').val(value);
});
$(document).on('click', '#minus', function () {
var value = $('#number').val();
value--;
$('#number').val(value);
});
或者将它们交替组合到:
$(document).on('click', '#plus,#minus', function (event) {
var value = $('#number').val();
if (event.target.id == "plus") value++
else value--;
$('#number').val(value);
});
在两种情况下都更好地用$(document)
替换它们所附加容器的选择器:
$('#mycontainerid').on(
...
答案 2 :(得分:1)
Vadim是正确的,但正确的做法是使用e.preventDefault()
:
$('button').on("click", function(e) {
e.preventDefault();
// Your code
});
还要确保代码中没有任何错误。
享受!