Get default value of an input using jQuery

前端 未结 6 982
梦谈多话
梦谈多话 2021-01-04 00:53
$(\".box_yazi2\").each(function () {
    var default_value = this.value;
    $(this).css(\'color\', \'#555\'); // this could be in the style sheet instead
    $(this         


        
相关标签:
6条回答
  • 2021-01-04 01:26

    I'm using the next code:

        //clear the focused inputs
    $('input[type="text"]').focus( function(){
        if( $(this).attr('value') == $(this).attr('defaultValue') ){
            $(this).attr('value', '');
        };
    } );
    $('input[type="text"]').blur( function(){
        if( $(this).attr('value') == '' ){
            $(this).attr('value', $(this).attr('defaultValue') );
        };
    } );
    
    0 讨论(0)
  • 2021-01-04 01:30

    Just use the defaultValue property:

    var default_value = $(this).prop("defaultValue");
    

    Or:

    var default_value = this.defaultValue;
    
    0 讨论(0)
  • $('input[type="text"]').focus( function(){
                elementValue = $(this).val();
                $(this).val("");
            });
            $('input[type="text"]').blur( function(){
                if($(this).val() != elementValue && $(this).val() != ""){
    
                }else{
                    $(this).val(elementValue);
                }
    
            });
    
    0 讨论(0)
  • 2021-01-04 01:41

    You should use prop instead of so many functions to be honest, use 'delegate' instead of 'on' for late static binding.

    $('.box_yazi2').each(function() {
    
    $(this).on('focus', function(){
    
       if($(this).val() == $(this).prop('defaultValue')){
    
          $(this).val('');
          $(this).css('color', '#000');
        }
    
    });
    
    $(this).on('blur', function(){
    
       if($(this).val() == ''){
    
          $(this).val($(this).prop('defaultValue'));
          $(this).css('color', '#000');
       }
    
    });
    
    });
    
    0 讨论(0)
  • 2021-01-04 01:45

    Use this.defaultValue

    Sorry for the link to w3notcools, http://www.w3schools.com/jsref/prop_text_defaultvalue.asp

    0 讨论(0)
  • 2021-01-04 01:48

    The solution is quite easy; you have an extra }); in your code (thanks @ Box9).

    I would encourage you to reuse the variable and not create dozens of jQuery objects.

    I've changed your example to background-color but it will work.

    $('.box_yazi2').each(function(index, element) {
        var $element = $(element);
        var defaultValue = $element.val();
        $element.css('background-color', '#555555');
        $element.focus(function() {
            var actualValue = $element.val();
            if (actualValue == defaultValue) {
                $element.val('');
                $element.css('background-color', '#3399FF');
            }
        });
        $element.blur(function() {
            var actualValue = $element.val();
            if (!actualValue) {
                $element.val(defaultValue);
                $element.css('background-color', '#555555');
            }
        });
    });
    

    demo

    0 讨论(0)
提交回复
热议问题