验证从ajax加载的表单

时间:2011-11-24 12:48:56

标签: ajax forms validation loaded

所以这是我的问题。

我有一个带有简单表单的html页面和一些javascript(jquery)代码来验证它,好吧。

此页面如下所示:test.html

<html>
<head>
<title></title>
<script  src="jquery-1.7.min.js" type="text/javascript"></script>
<script type="text/javascript">

function validate(){
    $('form').submit(function () {
        var txt = $('#SYSTEM_NAME').val();
        if (txt == '') $('#loading').append('field is empty');
        return false;
    })

}

window.onload = validate

<form action="SomeAction" id="form0" method="post">

    <fieldset>
        <legend>Information</legend>

        <div class="editor-field">
            <input id="SYSTEM_NAME" name="SYSTEM_NAME" type="text" value="" />
        </div>

        <input type="submit" value="Insert" id="saveCreation" />
        <div id="loading"></div>

    </fieldset>

</form>

</body> 
</html>

在上面的这个页面中,如果您尝试在“SYSTEM_NAME”字段中没有任何信息的情况下插入,则会显示消息。一切都很好,我的表格已经过验证。

但是当我使用ajax(jquery)从另一个页面加载此页面时,会发生什么,在加载后我在'test.html'上做的验证工作。

示例:

<html>
<head>
<title></title>
<script  src="jquery-1.7.min.js" type="text/javascript"></script>
<script type="text/javascript"> 
$('#go').click(function(){
    $('#here').load('test.html')
}); 
</script>
</head>
<body>
<input type='button' id='go' value='go' />
<div id='here'></div>
</body>
</html>

现在,如果我单击“插入”,验证操作将再次起作用。

我该如何解决这个问题?我可以与加载的页面和JavaScript代码一起进行交互吗?

希望你们明白我的问题。感谢并抱歉犯了错误。

1 个答案:

答案 0 :(得分:0)

请原谅我,如果这是一个太大的改变,但我想我可能会建议另一种方法。如何使用jquery validate来帮助您进行验证?这是一个ajax-response验证的例子。下面是父文件...(注意我在头部包括jquery验证。只是忽略&#39; get_test&#39;我用来加载部分。)

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js" type="text/javascript"></script>
  <script type="text/javascript">

    $(document).ready(function() {

      $('#go').click(function() {
        $('#here').load('get_test');
      });

    }); 

  </script>

</head>
<body>

<input type='button' id='go' value='go' />
<div id='here'></div>
</body>
</html>

以及我正在加载的部分...(注意文本输入有一个&#39; required&#39; - 这就是jquery validate的工作原理。你也会看到一个验证方法。)

<script type="text/javascript">
  $("#form0").validate();
</script>

<form action="SomeAction" id="form0" method="post">

    <fieldset>
        <legend>Information</legend>

        <div class="editor-field">
            <input id="SYSTEM_NAME" name="SYSTEM_NAME" type="text" value="" class="required" />
        </div>

        <input type="submit" value="Insert" id="saveCreation" />
        <div id="loading"></div>

    </fieldset>

</form>