在Javascript验证失败后获取表单值

时间:2017-01-11 05:59:29

标签: javascript html forms validation

首先,我所谈论的代码是标记作业的一部分,所以我无法发布整个内容,以防其他人从课程中发现这一点。

然而,一般的要点是我有一个表格:

<form action="yo!PHPlinkhere" method="post" onsubmit="return callAllFunctions();">
    <table>
        <tr>
            <td>Age</td>
            <td><input type="text" id="Age" name="Age" size="3" maxlength="3"/></td>
        </tr>
    </table>
    <input type="submit" value="Submit"/>
</form>

为了澄清表格中有多个input,这是一个缩减版本,其余格式与此相同。

然后javascript code确保年龄在1-100之间并且传回真或假。问题是,如果返回false,然后你将年龄改为1-100并再次点击提交,则新值不会被保留。

我不熟悉HTML和JavaScript,因此我不确定问题是如何获取值,然后存储在JavaScript中或以HTML格式发送。

非常感谢任何帮助。

P.S哟!PHPlinkhere只是填充物,实际的HTML文件在那里有真正的链接。

2 个答案:

答案 0 :(得分:0)

&#13;
&#13;
function callAllFunctions() {
  var age = document.getElementById("Age").value;
  if (age > 100 || age <= 0) {
    console.log(age);
    return false;
  }
  console.log(age);
  document.getElementById("resultAge").innerHTML = age;
  return true;
}
&#13;
<form action="#" method="post">
  <table>
    <tr>
      <td>
        <input type="number" name="Age" id="Age" size="3" maxlength="3" required>
      </td>
    </tr>
    <tr>
      <td>
        <input type="submit" value="submit" onclick="return  callAllFunctions()">
      </td>
    </tr>
  </table>
</form>
<div id="resultAge"></div>
&#13;
&#13;
&#13;

可能会有所帮助。

HTML文件

<form action="#" method="post" onsubmit="return callAllFunctions()">
      <table>
         <tr>
             <td><input type="number" name="Age" id="Age" size="3" maxlength="3" required></td>
         </tr>
         <tr>
             <td><input type="submit" value="submit"></td>
         </tr>
     </table>
</form>
<div id="resultAge"></div> // you can get what value is passing

Js档案

function callAllFunctions() {
    var age = document.getElementById("Age").value;
    if (age > 100 || age <= 0) {
        console.log(age);
        return false;
    }
    console.log(age);
    document.getElementById("resultAge").innerHTML = age;
    return true;
}

您可以看到控制台正在记录正在传递的所有Age值,但只有在真实且已在<div class="resultAge"></div>中使用innerHTML显示时才会提交。

在代码段中只是为了显示它正常工作我使用onclick,因此您可以在<div class="resultAge"></div>

中看到价值

答案 1 :(得分:0)

也许这会有所帮助:

function callAllFunctions() {
    var age = document.getElementById("Age").value;
    return (age > 100 || age <= 0)? false :
    document.getElementById("resultAge").innerHTML = age;   
}