2012-06-26 7 views
18

Poniższy atrybut zastępczy działa poprawnie w firefoxie, ale jeśli wywołanie val() zostanie wywołane, gdy pole jest puste, zwraca wartość zastępczą zamiast rzeczywistej wartości w tekście.val() zwraca wartość elementu zastępczego zamiast rzeczywistej wartości w IE8,9, gdy pole jest puste

JSFiddle - http://jsfiddle.net/Jrfwr/2/

<input id="tlt" type="text" placeholder="Enter Title" /> 

JSCode

function placeHolderFallBack() { 
    if ("placeholder" in document.createElement("input")) { 
     return; 
    } 
    else { 
     $('[placeholder]').focus(function() { 
      var input = $(this); 
      if (input.val() == input.attr('placeholder')) { 
       input.val(''); 
       input.removeClass('placeholder'); 
      } 
     }).blur(function() { 
      var input = $(this); 
      if (input.val() == '' || input.val() == input.attr('placeholder')) { 
       input.addClass('placeholder'); 
       input.val(input.attr('placeholder')); 
      } 
     }).blur(); 
     $('[placeholder]').parents('form').submit(function() { 
      $(this).find('[placeholder]').each(function() { 
       var input = $(this); 
       if (input.val() == input.attr('placeholder')) { 
        input.val(''); 
       } 
      }) 
     }); 
    } 
} 
+1

I jakie jest pytanie? –

Odpowiedz

15

Można zastąpić metodę val(), ale nie podoba mi się to robić: D

napisałem prostą funkcję pVal() która wykonuje zadanie:

$.fn.pVal = function(){ 
    var $this = $(this), 
     val = $this.eq(0).val(); 
    if(val == $this.attr('placeholder')) 
     return ''; 
    else 
     return val; 
} 
$(function(){ 
    alert($('input').val()) 
    alert($('input').pVal()) 
});​ 

http://jsfiddle.net/W7JKt/3/

+7

co, jeśli ktoś zdecyduje się napisać, co oznacza symbol zastępczy? – Luka

+1

Następnie jest zastępowany. A może uważasz, że to może być coś pożytecznego? Tak długo, jak wybierzesz dobry tekst zastępczy, nie powinno się zdarzyć, – Thomas

+1

po prostu myślę, że jest to problem, który może się zdarzyć, nie jest to dla mnie ważne, po prostu uważam, że zawsze należy próbować tworzyć kod, który nie stwarza problemów dla użytkownika i widzę tutaj potencjał problemów. Ale znowu to tylko moja opinia i naprawdę nie mam żadnego interesu w tym pytaniu. – Luka

3

W kodzie JSFiddle uzyskać wartość pola tekstowego w przypadku kliknięcia przycisku ... i kod, który sprawdza, czy bieżąca wartość pola tekstowego jest równa zastępczy realizuje w przesyłania formularza zdarzenie.

A więc ... Problem polega na tym, że zdarzenie CLICK BUTTON wykonuje się przed zdarzeniem SUBMIT FORMULARZA.

This code shows an example of how to get the correct value

nadzieję, że pomoże.

Powiązane problemy