使用.blur()时焦点不会消失

时间:2014-04-27 13:41:17

标签: javascript html ajax forms

我正在使用ajax保存表单。它只有一个输入,我隐藏了提交按钮。当用户按下回车键时,我希望输入字段不会失去焦点。继承我目前的代码: HTML:

    <form id="statusUpdate" action = "saveStatus.php" method="post" class="ajax"> 
        <input type="text" id="statusForm" name="status"  placeholder="<?php  
         if($status!=null){ echo '&lsquo;'.$status.'&rsquo;'; 
        } else { 
       echo 'Enter your status here.';}?>"> 
        <input type="submit" hidden="true"/>
        </form>

js

    $('form.ajax').on('submit', function() {

    var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};

that.find('[name]').each(function(where, value) {
    var that = $(this),
        name = that.attr('name'),
        value = that.val();

        data[name] = value; 
});

$.ajax({
    url:url, 
    type:type,
    data: data,
    success: function(response){
        console.log(response);
    } 
});
return false;
$(name).blur();

});

目前服务器端的东西一切正常,所以数据库更新。但是,模糊位不起作用。在用户提交表单后让输入失去焦点的任何帮助都会很棒。

另外在旁注上我想让它运行ajax如果他们点击输入字段,所以我刚刚复制并粘贴了js并更改了

    $('form.ajax').on('submit', function() {

    $('form.ajax').on('change', function() {

无论如何要提交或更改?

非常感谢!

2 个答案:

答案 0 :(得分:0)

您在使用.blur()后调用return方法,因此不会触发模糊事件。

尝试:

$('[' + name + ']').blur();
return false;

答案 1 :(得分:0)

至于你的第二个问题,你可以使用:

$('form.ajax').on('submit change', function(){
    ...
});