-1

検証しないフォームを送信している間。フォーム送信に送信を使用していますが、ページをリダイレクトする必要があります。onclick イベントを使用して検証する必要があります。

<td id="main">
  <h2>Add Info </h2>
  <form action="create_info.php" name="f1" method="post">
    <p>Info Title:
      <input type="text" name="menu" value="" id="menu" />
    </p>
    <p>Position:
      <select name="position">
        <?php
        $info_set = get_all_info();
        $info_count = mysql_num_rows($info_set);
        for($count=1; $count <=$info_count+1; $count++){
        echo " <option value=\"{$count}\">{$count}</option>";
        }
        ?>
      </select>
    </p>
    <p>Visible:
      <input type="radio" name="visible" value="0" />NO
      <input type="radio" name="visible" value="1" />YES
    </p>
    <input type="submit" value="Add" onclick="validateForm()"/>
  </form>
  <br>
  <a href="content.php">Cancel</a>
</td>
</tr>
</table>
</div>
<script language="text/java script">
  function validateForm()
  {
    if(f1.menu.value== "")
    {
      alert("name must be filled out");
      return false;
    }
  }
</script>
4

1 に答える 1

0

送信イベントをブロックしていないため、検証されませんでした。検証を onsubmit イベントに入れる必要があります。送信ボタンをクリックするとトリガーされます。

jsFiddle の作業コード: http://jsfiddle.net/FHZKr/

<form action="create_info.php" name="f1" method="post" onsubmit="return validateForm();">
    <p>Info Title:
    <input type="text" name="menu" value="" id="menu" />
    </p>
    <p>Position:
        <select name="position">
         <?php
         $info_set = get_all_info();
         $info_count = mysql_num_rows($info_set);
         for($count=1; $count <=$info_count+1; $count++){
         echo " <option value=\"{$count}\">{$count}</option>";
         }
         ?>
        </select>
    </p>
    <p>Visible:
     <input type="radio" name="visible" value="0" />NO 
     <input type="radio" name="visible" value="1" />YES
    </p>
    <input type="submit" value="Add" />
</form>

JavaScript

<script type="text/javascript">

function validateForm()
{
  if(f1.menu.value== "")
  {
      alert("name must be filled out");
      return false;
  }
  return true;
}
</script>
于 2013-03-03T17:19:25.837 に答える