我有一个代码,如果输入文本框的文本与预定义的文本不匹配,我需要重置html表单。但是,如果我使用reset()函数,即使文本与预定义文本匹配,表单也会重置。我该如何避免这个问题?这是我的代码。
function showData() {
var code= document.getElementById("bcno").value.trim();
switch(code)
{
case "WASTE1":
document.getElementById('display').innerHTML ="This Is Waste Type 1.";
break;
case "WASTE2":
document.getElementById('display').innerHTML ="This Is Waste Type 2.";
break;
case "WASTE3":
document.getElementById('display').innerHTML ="This Is Waste Type 3.";
break;
case "WASTE4":
document.getElementById('display').innerHTML ="This Is Waste Type 4.";
break;
default:
setTimeout(function(){document.getElementById("updateform").reset();}, 2000);
document.getElementById('display').innerHTML ="The text does not match. Form will be reset momentarily!!.";
break;
}
Heres是html部分。
<form action="dbupdate.php" method="post" id="updateform"
name="updateform">
<label for="bcno">Item ID: </label>
<input type="text" autofocus="autofocus" name="bcno" id="bcno"
oninput="showData()" autocomplete="off" /> <br /><br />
<div id="display"></div>
<label for="ino">Quantity: </label>
<input type="number" id="ino" name="ino" value="1" /><br /><br />
<input type="button" onclick="document.updateform.submit();"
value="Confirm"> </form>
bcno 是文本框的ID。我究竟做错了什么? 我还使用谷歌浏览器(版本63.0.3239.132,最新版)来测试我的代码
答案 0 :(得分:1)
好的,我得到了我做错的事。 我一直在文本框中使用 oninput 事件,只要字符输入到文本框中就会调用该函数。 我用 onchange 事件替换它。现在它工作正常。不管怎样,谢谢你们。
答案 1 :(得分:0)
只有在调用reset()方法时才会重置表单。总是你看到&#34;文字不匹配&#34;即使值与预定义文本匹配,也会单独打印?尝试在switch块之前放置console.log(代码)以查找从输入字段读取的值。
答案 2 :(得分:0)
使用JavaScript var myTimer;
function showData() {
var code = document.getElementById( 'bcno' ).value.trim().toUpperCase(),
disp = document.getElementById( 'display' );
switch ( code ) {
case 'W':
case 'WA':
case 'WAS':
case 'WAST':
case 'WASTE':
break;
case 'WASTE1':
disp.innerHTML ="This Is Waste Type 1.";
break;
case 'WASTE2':
disp.innerHTML ="This Is Waste Type 2.";
break;
case 'WASTE3':
disp.innerHTML ="This Is Waste Type 3.";
break;
case 'WASTE4':
disp.innerHTML ="This Is Waste Type 4.";
break;
default:
myTimer = setTimeout( function () { document.getElementById( 'updateform' ).reset(); }, 2000 );
disp.innerHTML = 'The text does not match. Form will be reset!!.';
break;
}
}
document.getElementById( 'updateform' ).addEventListener( 'reset', function () {
clearTimeout( myTimer )
} )
语句,您可以执行此操作。但使用<form action="dbupdate.php" method="post" id="updateform" name="updateform">
<label for="bcno">Item ID: </label>
<input type="text" autofocus="autofocus" name="bcno" id="bcno" oninput="showData()" autocomplete="off" />
<span id="display"></span>
<br>
<label for="ino">Quantity: </label>
<input type="number" id="ino" name="ino" value="1" />
<br /><br />
<input type="submit" value="Confirm">
</form>
要好得多。
s=0
for(i=0; i<n; i++)
{
for (j=1; j<n; j *= 2)
{
s=s+i*j;
}
s=s+1
}
s=0
for(i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
s=s+i*j;
}
s=s+1
}