0

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

$('#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;
    }
});​
4

5 回答 5

1

呼应其他人已经说过的内容,获取元素的值 - 你真的应该使用 val() 函数。

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

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

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

在 jQuery 中也有更好的 POST 方法;IE

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

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

另外,不要返回false。这是一种不好的做法,会做很多事情,而且当您维护别人的代码并且您所看到的只是“返回 false”时,这可能会让人感到困惑;即使发生正确的事件。您正在寻找的是 preventdefault 。像这样..

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

这里有更多关于不返回 false 的原因的信息。

于 2012-06-25T16:51:31.047 回答
0

您可以使用以下命令清除文本输入值:

$('#inputId').val('');
于 2012-06-25T16:19:19.680 回答
0

这更好地获得价值

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

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

$('#namecoun').val('');
$('#codecoun').val('');
于 2012-06-25T16:19:50.710 回答
0

你应该使用

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

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

$('#namecoun').val('')
于 2012-06-25T16:20:04.173 回答
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('')

希望有帮助。

于 2012-06-25T16:26:54.477 回答