完成打字后提交表格?

时间:2015-06-15 04:47:19

标签: javascript jquery ajax forms

我有一个总共五个输入的表单(用于用户注册)。我想让用户知道他们选择的用户名是否可用,而无需点击“提交”按钮。

如何在用户输入输入字段后提交表单(使用jQuery和AJAX)(如Twitter那样)?我知道我可以在change上提交表单,但是这会在每个输入的字母上提交表格,对吗?

我该怎么办?

4 个答案:

答案 0 :(得分:2)

使用模糊事件进行ajax调用。模糊事件在失去焦点时发送给元素

$( "#your_element_id" ).blur(function() {
alert("hello world");
});

答案 1 :(得分:1)

以下是包含setTimeoutkeyup事件的解决方案:Solution

// get input element
var $input = $('#userNameInput');
var inputTimeout;

function checkUserName() {
    // ajax code
    alert('request');
}

// on keyup event
$input.keyup(function(){

    // if already set
    if (inputTimeout) {

        clearTimeout(inputTimeout);
    }

    inputTimeout = setTimeout(checkUserName, 1000);
});

答案 2 :(得分:0)

jquery使用focusout

$(document).ready(function () {
    $( "input" ).focusout(function() {
      $.ajax({
       //your check here
      }).done(function() {
        alert("your username is already in use");
      });
    }
});

https://api.jquery.com/focusout/

答案 3 :(得分:0)

试试这个:

$(document).ready(function () {
   $("input propertychange", function () {

        $.ajax({
        type: "POST",
        url: url,
        data: postdata,
        //dataType: "json",
        success: function (data) {
           ....................
        }
    });

   });
});