我有一个id = uName的文本字段。当我按下回车键我希望jquery检测它并提交表格。但它没有检测到按下按键的事件。
如何解决这个问题?
代码:
<s:textfield cssClass="inputselect" name="uname" id="uname" />
<script type="text/javascript">
$(document.getElementById('uname')).keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13') {
document.getElementById("formID").action="searchbaseuom";
document.getElementById("formID").submit();
}
});
</script>
答案 0 :(得分:2)
我对你的代码做了一些修改,希望这会有所帮助,但是你将jquery与javascript混合在一起,告诉我们你还没有掌握jquery的工作方式。
希望这会有所帮助。
<s:textfield cssClass="inputselect" name="uname" id="uname" />
<script type="text/javascript">
$('#uname').keypress(function(event){
var keycode = (event.keyCode) ? event.keyCode : event.which;//note changes
if(keycode == '13'){
$("#formID").attr('action',"searchbaseuom").submit();
}
});
</script>
<强>更新强>
此外,如果您已将脚本标签放在头标签上,那么您将需要一个就绪功能,这意味着当页面正确加载后,请执行以下说明。
因为表单可能在上述脚本之后响亮,这意味着您的事件尚未附加,因此您需要将整个脚本放在以下代码上。
$(function (){//when document is ready line.
// script goes here
});
这与
相同$(document).ready(function(){
//script here.
});
唯一的区别是一个比另一个短。
答案 1 :(得分:0)
确保您的代码在之后运行>>。
<script type="text/javascript">
$(function(){
$('#uname').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode === 13){
$('#formID').attr('action','searchbaseuom').submit();
}
});
});
</script>