第1部分:
当用户“更改”输入字段时,是否可以使用任何事件来获取回调。我对变化的定义是模拟以下效果。比如,我想在用户输入输入框时更新标签。我尝试了jquery“改变”事件。它有效,但没有现场效果。更新输入字段后,我必须单击屏幕中的某个位置以更新标签。
第2部分:
好吧,如果这不是一个好主意,我可能会阻止在输入密钥上提交表单。不确定是否有一个好方法。快速搜索找到了这个答案。<form action="" method="post" onsubmit="return false;">
尚未测试,但希望提交按钮仍然有效。
编辑:测试,并且onsubmit =“return false;”甚至阻止提交按钮。
感谢,
BSR。
答案 0 :(得分:8)
这应该这样做:
input.bind('keydown keypress', function() {
setTimeout(function() {
label.text(input.val());
}, 0);
});
答案 1 :(得分:4)
第1部分
您可以每keyUp
更新一次,但我建议您在用户完成输入后至少等待1秒。
var timer;
var changeTxt = function(){
// Change label text here.
};
$("#myInput").keyup(function(){
clearTimeout(timer);
timer = setTimeout(changeTxt, 1000);
});
第2部分
您发布的示例会停止提交表单。这是你的目标吗?
修改强>
我认为您正试图控制表单的提交?
$("#myForm").submit(function(){
if(/* Your condition here */){
return false;
//Only if your condition is true, stop form submission
}
});
答案 2 :(得分:0)
您是否尝试过keydown或keypress事件?
答案 3 :(得分:0)
我更喜欢表单和字段验证的组合: 在此处查找工作示例:http://jsfiddle.net/ezmilhouse/9mNc4/1/
你的HTML:
<form method="post" action="post.php">
<input type="text" name="" value="" />
<label>Name</label>
<div></div>
</form>
你的js:
// prevent form from being posted empty
$('form').live('submit', function(evt){
if ( $('input', this).val() === "" ) {
evt.preventDefault();
alert('Field is required!');
}
});
// validate form field on the fly
var min = 3;
$('input').live('keyup change', function(){
if ($(this).val().length < min) {
$('div').html('<span class="invalid">min. 3 characters.</span>');
} else {
$('div').html('<span class="valid">ok!</span>');
}
});
答案 4 :(得分:0)
您可以使用名为oninput
的内容。
<form oninput="xx.value=aa.value">
<input type="text" name="aa" value="">
<output name="xx" for="aa"> </output>
</form>