我在我的网站的几页上有一个侧边栏的表格
<form id="test1" name="test1">
<label for="fname">First Name:</label>
<input type="text" name="fname" id="fname" />
<label for="lname">Last Name:</label>
<input type="text" name="lname" id="lname" />
<label for="comment">Comment:</label>
<textarea name="comment" id="comment"><textarea/>
<input type="submit" />
</form>
我的要求很奇怪。如果有人填写表格(甚至部分)然后离开当前页面(通过转到其他页面,或关闭浏览器标签/窗口),则应提交表格。
我正在使用以下jQuery代码来实现以下目标:
<script>
$(window).bind('beforeunload', function(){
$('form').each(function(index) {
var filled = false;
$(this).find("input").each(function() {
if ($(this).val() != "") {
filled = true;
}
});
if (filled) { this.submit(); }
});
return confirm('test');
});
以上代码无法正常运行,表单未提交。请帮助。
答案 0 :(得分:0)
变量填充在$(form).each中声明并在其外部使用
答案 1 :(得分:0)
@amtanay:据我所知,嵌套是正确的......
新规范(未经测试):
$(window).bind('beforeunload', function(){
$('form').each(function(index) {
var filled = false;
$(this).find("input").each(function() {
if ($(this).val() != "") {
filled = true;
}
});
if (filled) { $(this).submit(); }
});
return confirm('test');
});
您还可以考虑在找到非空字段后立即提交表单。如果表格应该提交,即使只是部分填写,也无需检查所有字段。