开发者

jQuery to trim() a text input field's value attribute?

In this jQuery, I'm able to bind the paste event to validate the form field, but my method inside the function is apparently wrong. I'm not getting an alert at all.

I just want to trim the text that's input and return that as the 开发者_如何学Govalue of the form input text field #adsense_client_id.

$("#adsense_client_id").bind('paste', function(e) {
    $(this).attr('value') = $.trim(this).val();
    alert($(this).val()); //why no alert?
});


The $.trim is a function which needs a variable/string inside it, since you did not wrap $(this).val() with $.trim in order for it to work.

As you need a timeout for the paste to be caught, do it like this:

$("#adsense_client_id").bind('paste', function(e) {
    var clientId = $(this);
    setTimeout(function(){
        clientId.val($.trim(clientId.val()));
        alert(clientId.val());
    });
});

Demo.


check out this response Catch paste input

apparently you need to set a small settimeout to catch the pasted input value

this should do the trick:

("#adsense_client_id").bind('paste', function(e) {
    $(this).attr('value') = $.trim($(this).val());
    var el = $(this);
    setTimeout(function()
    {
        var text = $(el).val();
        alert($.trim(text)); //why no alert?
    }, 500);
});


$(this).val($(this).val().trim());
alert($(this).val());


I know this is a very old question but this is pretty obvious...

The only poblem with your code is with this line:

$(this).attr('value') = $.trim(this).val();

Which is incorrect in JavaScript. I think you meant this:

$(this).attr('value', $.trim(this).val());

And the resulting code works perfectly:

$("#adsense_client_id").bind('paste', function(e) {
    $(this).attr('value', $.trim(this).val());
    alert($(this).val()); 
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜