Ajax成功时将字段的值设置为空

时间:2012-06-25 16:15:28

标签: jquery ajax post

我想在成功时将列出的字段值清空为空。在下面的代码中,调用一个url并将值传递给页面,并在该页面上获取值并将其插入到mysql中,因此在成功函数中我希望得到该值的字段变为空。

$('#datacouform').click(function() {
    var couname = $('#namecoun').attr('value');
    var coucode = $('#codecoun').attr('value');
    if ((couname === '') || (coucode === '')) {
        $('p#errorcou').show(200);
        return false;
    }
    else if ((!couname.match(/^[a-zA-Z]+$/)) || (!coucode.match(/^[a-zA-Z]+$/))) {
        $('p#errorcou').hide(20);
        $('p#errorcou').show(50);
        return false;
    } else {
        $('a#counloader').show();
        $.ajax({
            type: 'POST',
            url: 'adddata.php',
            data: 'counname=' + couname + '&councode=' + coucode,
            success: function() {
                $('a#counloader').hide();
                $('#addcountryform').hide(400);
                $('#addcountry').show(400);
            }
        });
        return false;
    }
});​

5 个答案:

答案 0 :(得分:0)

您可以使用以下方法清除文本输入值:

$('#inputId').val('');

答案 1 :(得分:0)

这更适合获取值

var couname = $('#namecoun').val();
var coucode = $('#codecoun').val();

要清空这些输入,请将这些行放在success回调函数中。

$('#namecoun').val('');
$('#codecoun').val('');

答案 2 :(得分:0)

您应该使用

var couname = $('#namecoun').val();

获取输入元素的值时获得一致的结果。然后,如果要设置值,只需使用

$('#namecoun').val('')

答案 3 :(得分:0)

假设'#namecoun'和'#codecoun'只是输入,我对你提供的代码片段进行了一些调整。请尝试以下方法:

$('#datacouform').click(function() {
    var couname = $('#namecoun').val();
    var coucode = $('#codecoun').val();
    if ((couname.length == 0) || (coucode.length == 0)) {
        $('p#errorcou').show(200);
    } else if ((!couname.match(/^[a-zA-Z]+$/)) || (!coucode.match(/^[a-zA-Z]+$/))) {
        $('p#errorcou').hide(20);
        $('p#errorcou').show(50);
    } else {
        $('a#counloader').show();
        $.ajax({
            type: 'POST',
            url: 'adddata.php',
            data: 'counname=' + couname + '&councode=' + coucode,
            success: function() {
                //RESET VALUES TO EMPTY
                $('#namecoun').val('');
                $('#codecoun').val('');
                $('a#counloader').hide();
                $('#addcountryform').hide(400);
                $('#addcountry').show(400);
            }
        });
    }
});

不使用“.attr('value')”来获取输入的值,而是使用jQuery .val()将值作为字符串返回。然后我使用“.length”来查看值是否为空。我删除了隐含的退货。使用相同的.val()函数,您可以通过在.val('value')等参数中放置一个字符串来为这些输入赋值。在这种情况下,我们希望字段为空,所以我给它一个空字符串.val('')

希望有所帮助。

答案 4 :(得分:0)

要回应其他人已经说过的话,要获得元素的值 - 你应该使用val()函数。

$('#namecoun').val();  //get the value of the element

然后,如果你提供一个参数.val(),它将设置元素的值(而不是获取它)。

$('#namecoun').val(''); // set (empty) the value of the element

还有更好的方法在jQuery中进行POST;即

$.post({
    url: "adddata.php",
    data: { counname : counname,
            councode : coucode },
    success: function(){
        $('#namecoun').val('');
        /* and so on... */
    }
});

这只是你所做的快捷方式,但是,以这种方式传递数据可以节省字符串操作。或者,使用序列化功能。

另外,不要返回false。这是不好的做法,做了很多事情,当你维护别人的代码时,你可能会感到困惑,所有你看到的都是“回归虚假”;即使发生了正确的事件。您正在寻找的是防止默认。像这样......

$('#example').click( function(e){
    /* code here */
    e.preventDefault();
});

有关不返回虚假here的原因的更多信息。