我使用这个
jquery代码进行无限循环,我知道为什么,但我不知道如何解决这个问题:
<form id="submitme"> <input value="" name="n1" id="n1" type="text"/> <input value="Send" type="button"/> </form> <script> $('#submitme').bind( 'submit',function() { $.post( 'validate.PHP','value=' + $('#n1').val(),function (data) { if (data == "true") $('#submitme').submit(); }); }); </script>
解决方法
jQuery.validate插件可以解决这个问题,我强烈建议您使用它:
$('#submitme').validate({ rules: { n1: { remote: { url: 'validate.PHP',type: 'post' } } } });
但是如果你不想使用它,另一种可能性是使用全局变量,如下所示:
$('#submitme').submit(function() { if (!$.formSubmitting) { var $form = $(this); $.post('validate.PHP',{ value: $('#n1').val() },function (data) { if (data == 'true') { // set the global variable to true so that we don't enter // the infinite loop and directly submit the form $.formSubmitting = true; $form.submit(); } }); return false; } return true; });
只是一个注释:您放在表单中的按钮不是提交按钮,因此单击它不会触发提交处理程序.你应该把它变成一个提交按钮:
<input value="Send" type="submit" />