2012-04-02 20 views
0

Ich benutze .prev('label'), um den vorherigen Text vom Etikett zu bekommen, aber wie bekomme ich die Daten oder Text 2 Schritte zurück von der Bezeichnung.So extrahieren Sie den vorherigen Tag-Text

wie kann ich Daten aus diesen folgenden Codes greifen.

HTML:

<tr> 
    <td width="25%">Name</td> 
    <td width="75%"><input type="text" name="name" id="name" class="requiredField" /></td> 
</tr> 

Javascript:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('form#sponsorshipForm').submit(function() { 
     $('form#sponsorshipForm .error').remove(); 
     var hasError = false; 
     $('.requiredField').each(function() { 
      if(jQuery.trim($(this).val()) == '') { 
       var labelText = $(this).prev('label').text(); 
       $(this).parent().append('<span class="error">You forgot to enter your '+labelText+'.</span>'); 
       hasError = true; 
      } else if($(this).hasClass('email')) { 
       var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
       if(!emailReg.test(jQuery.trim($(this).val()))) { 
        var labelText = $(this).prev('label').text(); 
        $(this).parent().append('<span class="error">You entered an invalid '+labelText+'.</span>'); 
        hasError = true; 
       } 
      } 
     }); 
     if(!hasError) { 
      $('form#sponsorshipForm li.buttons button').fadeOut('normal', function() { 
       $(this).parent().append('<img src="/wp-content/themes/td-v3/images/template/loading.gif" alt="Loading&hellip;" height="31" width="31" />'); 
      }); 
      var formInput = $(this).serialize(); 
      $.post($(this).attr('action'),formInput, function(data){ 
       $('form#contactForm').slideUp("fast", function() {     
        $(this).before('<p class="thanks"><strong>Thanks!</strong> Your email was successfully sent. I check my email all the time, so I should be in touch soon.</p>'); 
       }); 
      }); 
     } 

     return false; 

    }); 
}); 
</script> 

Wie kann ich extrahieren "Namen", weil ich nicht Etikett hier bin mit.

danke

+0

Bitte zeigen Sie auch das JavaScript an, das Sie gerade verwenden. –

+0

Codes jetzt hinzugefügt .. – Muzammil

Antwort

-1

aufhören zu versuchen, seltsam .prev() und das Abrufen von Text, wie das zu tun. fügen Sie einfach den Text als benutzerdefinierte Attribut wie <input type="" custom-text="Name" /> oder .... fügen Sie die vollständigen Objektdaten in einem JavaScript-Wörterbuch und verweisen Sie von der ID oder der Name des Eingangs wie so zusätzliche Details zu erhalten ...

var a = {}; 

a["name"] = { name: "Name" } 

function getData(which) 
{ 
    return a[which]; 
} 

... so etwas ... aber bitte geh nicht den HTML-Code hoch und runter.

Verwandte Themen