使用AJAX加载表单输入和新的错误div

时间:2014-08-15 16:39:15

标签: php jquery ajax validation

我有一个表格,询问基本问题,这里是html:

  <form method="post" action="<url goes here>" enctype="application/x-www-form-urlencoded" id="register">

  <table border="0">
    <tr>
      <td class="tableQuestion">Your Name (character name/gaming handle):&nbsp;*</td>
      <td class="tableAnswer"><input id="username" type="text" name="username" placeholder="username" autocomplete="off"/></td><td class="tableStatus"><div id="username-status"></div></td>
    </tr>

  <span id="wait_1" style="display: none;">
  <img alt="Please Wait" src="ajax-loader.gif">
  </span>
  <span id="result_1">
  </span>
  <input type="submit" name="submit" id="FormSubmit" value="submit">
  </form>

然后有ajax-check.php在span中插入一个问题。它创造的不仅仅是一个问题,但出于此目的,我只提出一个问题。在ajax请求中创建的div始终命名为&#39; #inputid&#39; +&#39; -status&#39;

if(isset($_GET['game']) && $_GET['drop_var']=="2"){
    echo "<hr/>";
    echo "<center><h2>Planet Side 2</h2></center>";
    echo "<table border=\"0\">  ";
    echo "<tr>";
    echo "<td class=\"tableQuestion\">Your Name (character name/gaming handle):&nbsp;*</td>";
    echo "<td class=\"tableAnswer\"><input id=\"ps2-main\" type=\"text\" name=\"ps2-main\" /></td><td class=\"tableStatus\"><div id=\"ps2-main-status\"></div></td>";
    echo "</tr> ";
    echo "</table>  ";
}

使用验证插件可以解决除新问题之外的所有问题(输入)。示例如下:它将在div#username-status中打印错误消息。因此,在下面的示例中,用户名可行但它不适用于ps2-main。我知道它与DOM有关。

我已经查找了如何做到这一点,但我要么不理解,要么我做错了,这就是为什么我在这里寻求帮助。我已经使用live()阅读,但我不确定如何在此实现它。我已经让它正确地提交了数据。但我希望能够验证它。有什么想法吗?还有更好的方法吗?

$(function(){
  jQuery("#username").validate({
    expression: "if (VAL.length > 5 && VAL) return true; else return false;",
    message: "Please enter a name"
  });

  jQuery("#ps2-main").validate({
    expression: "if (VAL.length > 5 && VAL) return true; else return false;",
    message: "Please enter a name"
  });
});

1 个答案:

答案 0 :(得分:0)

这可能不是最好的解决方案。但我找到了有用的东西。我想我会在这里发布我的解决方案,所以如果其他人遇到它,他们至少可以找到解决方案。

我只是将jquery脚本添加到ajax中。

结束时
echo "</table>";

我把

<script type="text/javascript">
$(document).ready(function() {
    $("#ps2_main").validate({
        expression: "if (VAL.length > 5 && VAL) return true; else return false;",
        message: "Please enter a name"
    });
});
</script>

这对我有用。