我的应用程序中有一些表单.
如何以这样的方式保护表单:如果有人导航或关闭浏览器选项卡,应提示他们确认他们确实要保留未保存数据的表单?
我有一个隐藏的文本字段,其值通过AJAX响应更新.
<input type="hidden" value="" name="userid" id="useid" />
Run Code Online (Sandbox Code Playgroud)
当这个值改变时,我想发出一个AJAX请求.任何人都可以建议如何检测变化?
我有以下代码,但不知道如何查找值:
$('#userid').change( function() {
alert('Change!');
})
Run Code Online (Sandbox Code Playgroud) 我可以将任何事件处理程序附加到HTML隐藏输入字段吗?基本上我想在隐藏的输入字段值改变时运行一个函数.
我们都知道使用val()不会触发change事件,所以我们也在.trigger('change')后面使用val().
但问题是有人写了没有val()用,trigger()而且它是一个我无法编辑它的外部文件.
那么,我如何通过一些代码检测值的变化,如下所示:
$('.elem').on('change', function(){
// do something
});
Run Code Online (Sandbox Code Playgroud) 我有一个带有伪选择元素的表单.伪选择元素是下拉菜单.单击其中一个下拉项时,会为隐藏的输入指定一个分配给该项的值.我正在使用jQuery.validate来验证表单.一个简单的验证规则绑定到隐藏的输入.如果输入没有值,则隐藏输入和伪选择将被赋予错误类,并显示错误消息.
我的问题是更改隐藏输入的值不会触发更改,键入或模糊事件.如果将错误状态应用于隐藏输入,则在输入被赋予有效值之后该状态仍然存在.只有在再次提交表单时才会正确验证输入.
由于jQuery.validate允许对隐藏输入进行验证,我想知道是否存在处理此问题的配置或方法.
编辑:
$form.validate({
ignore: false,
rules: {
'firstname': 'required',
'lastname': 'required',
'org': 'required',
'role': 'required',
'email': {
required: true,
email: true
}
},
messages: {
'firstname': 'Please enter your first name',
'lastname': 'Please enter your last name',
'org': 'Please enter your organization',
'role': 'Please select your role',
'email': 'Please enter your email'
},
errorPlacement: function(error, element) {
var $errMessage = $('.js-err-message');
$errMessage.removeClass('js-hidden');
$(error).each(function(){
$errMessage.append(error);
if (element.is('#role-input')) {
$('.pseudo-select').addClass('mad-error');
}
});
}
});
Run Code Online (Sandbox Code Playgroud)