【发布时间】:2014-06-13 23:42:19
【问题描述】:
我在使用我创建的函数时遇到了问题。我正在建立一个网站的公司需要一个 sizer 应用程序,以便客户可以输入测量值并查看他们需要购买的尺寸型号。我已经构建了 sizer 应用程序,它工作正常,但我在验证时遇到了问题。我正在尝试完成两件事:
我需要确保所有三个字段都输入了一个值,所以如果一个字段留空,则需要显示错误消息并且函数将停止。
我需要确保输入的所有数据都是大于零的数字,否则会显示错误消息并且函数将停止。
我是 JS 的初学者,所以如果我什至不接近,请原谅,但我觉得我就在那里。任何帮助将不胜感激!代码如下
HTML
<div class="box">
<h2>Calculate Your TRiCC Size</h2>
<noscript><p>This Widget requires Javascript</p></noscript>
<!-- FORM -->
<form id='TriccSizerForm' method='post'>
<!-- Height -->
<label for='triccHeight'>Height in inches:</label>
<input id='triccHeight' type='number' name='triccHeight' value="" required>
<!-- Width -->
<label for='triccWidth'>Width in inches:</label>
<input id='triccWidth' type='number' name='triccWidth' value="" required>
<!-- Depth -->
<label for='triccDepth'>Depth in inches:</label>
<input id='triccDepth' type='number' name='triccDepth' value="" required>
<div id="mistake"> </div>
<div id="error"> </div>
<!-- Answer -->
<div id="triccAns"> </div>
<!-- Submit button -->
<button type='submit' value='Calculate' onclick='triccSizer(); return false;'>Calculate</button>
</form>
JS
function triccSizer() {
// Perform script
var h = document.getElementById("triccHeight");
var w = document.getElementById("triccWidth");
var d = document.getElementById("triccDepth");
var errors = false;
// validate
if (w.value === "") {
errors = true;
document.getElementById("error").innerHTML = 'Sorry but you must enter a valid number greater than zero for the width';
} else if (d.value === "") {
errors = true;
document.getElementById("error").innerHTML = 'Sorry but you must enter a valid number greater than zero for the depth';
} else if (h.value === "") {
errors = true;
document.getElementById("error").innerHTML = 'Sorry but you must enter a valid number greater than zero for the height';
} else {
errors = false;
}
if (isNaN(w.value)) {
errors = true;
document.getElementById("error").innerHTML = 'Sorry but you must enter a valid number greater than zero for the width';
} else if (isNaN(d.value)) {
errors = true;
document.getElementById("error").innerHTML = 'Sorry but you must enter a valid number greater than zero for the depth';
} else if (isNaN(h.value)) {
errors = true;
document.getElementById("error").innerHTML = 'Sorry but you must enter a valid number greater than zero for the height';
} else {
errors = false;
}
// Get Model
if (errors == true) {
document.getElementById("mistake").innerHTML = 'Sorry but you entered something inccorect into the form. Please try again.';
} else {
if ((w.value < 34) && (d.value < 35) && (h.value < 35))
document.getElementById("triccAns").innerHTML = 'Choose Model 36A';
else if ((w.value < 54) && (d.value < 35) && (h.value < 35))
document.getElementById("triccAns").innerHTML = 'Choose Model 3656A Standard';
else if ((w.value < 34) && (d.value < 54) && (h.value < 35))
document.getElementById("triccAns").innerHTML = 'Choose Model 3656A Deep';
else if ((w.value < 34) && (d.value < 35) && (h.value < 55))
document.getElementById("triccAns").innerHTML = 'Choose Model 3656A Upright';
else if ((w.value < 69) && (d.value < 35) && (h.value < 35))
document.getElementById("triccAns").innerHTML = 'Choose Model 36A Extended';
else if ((w.value < 89) && (d.value < 35) && (h.value < 35))
document.getElementById("triccAns").innerHTML = 'Choose Model 3656A Short Extended';
else if ((w.value < 109) && (d.value < 35) && (h.value < 35))
document.getElementById("triccAns").innerHTML = 'Choose Model 3656A Extended';
else if ((w.value < 44) && (d.value < 45) && (h.value < 45))
document.getElementById("triccAns").innerHTML = 'Choose Model 46A';
else if ((w.value < 89) && (d.value < 45) && (h.value < 45))
document.getElementById("triccAns").innerHTML = 'Choose Model 46A Extended';
else if ((w.value < 54) && (d.value < 55) && (h.value < 55))
document.getElementById("triccAns").innerHTML = 'Choose Model 56A';
else if ((w.value < 109) && (d.value < 55) && (h.value < 55))
document.getElementById("triccAns").innerHTML = 'Choose Model 56A Extended (You Must Contact Us For This Model and Pricing)';
else
document.getElementById("triccAns").innerHTML = 'You need a customized TRiCC Protective Cover. Please call 224-698-7422 for assistance.';
}
}
【问题讨论】:
-
这是一个 JSFiddle 与您的代码:jsfiddle.net/zwNn4 您有什么具体问题?
-
如果我将输入留空,它将给出错误消息和答案。相反,我希望在没有答案的情况下显示错误消息。
标签: javascript forms function validation