我有一个带有数量文本框的简单表单。我实现了一些最小数量的验证。如果用户输入的数字低于最小数量,他们会得到一个对话框,说明它们处于最小值,我通过文本框中的onchange事件将值设置回min。
如果您使用鼠标,它可以工作。问题是,当您按Enter键关闭该框时,它也会提交表单。我在想,因为在验证之前光标位于文本框中。
我在表格中使用onkeypress事件检查输入按钮,这样你就可以关闭框而不提交表格,但我想我可能想要这个功能有效数量或更高,更少我力每个人都使用提交按钮。当对话框触发时,是否可以将焦点从文本框中移开,这样用户可以按Enter键而不是提交表单但是使用好的值使用回车键?
function textQuantDown() {
//Set min qauntity variable
var min_quant = document.getElementById("min_quant");
//set text box value varaible
var elProd_quant = document.getElementById("prod_quant");
var intProd_quant = (isNaN(elProd_quant.value) || elProd_quant.value.length < 1) ? 2 : elProd_quant.value;
if( parseInt(intProd_quant) < parseInt(min_quant.value)){
alert( "Minimum quantity not reached");
elProd_quant.value = min_quant.value;
}else{
elProd_quant.value = intProd_quant;}
return false;
}
<input style="border:1px solid; font-size:14px; text-align:left;width:30px;" onchange="return textQuantDown();" name="add_id[1]" id="prod_quant" size="3" type="text" value="#thisclickquant#" class="popinp" maxlength="3" />
答案 0 :(得分:0)
如果无法看到代码的其余部分,您可以在提交时使用事件监听器,在通过JS手动提交表单之前,在输入值的任何内容中执行e.preventDefault()
和sub。