2017-09-23 2 views
1

J'ai une liste de résultats. Dans ces résultats, il y a un <textarea> inclus pour chacun d'entre eux. (textareas multiples)jquery textarea numéro de sélecteur

<textarea class="form-control smstext" 
      data-sms="<?php echo"$id"; ?>" 
      name="sms-<?php echo"$id"; ?>" 
      id="sms-<?php echo"$id"; ?>" 
      onkeyup="checkSmsText();" 
      onchange="checkSmsText();"> 
</textarea> 

J'ai un problème à obtenir la valeur de la data-sms -attribut et par conséquent le nombre $id.

jquery:

function checkSmsText() { 
    var elem = $(this); 
    var id = elem.attr('data-sms'); 
    console.log(id); 
    sms = $('#sms-' + id).val(); 
    console.log(sms); 
} 

J'ai essayé plusieurs options me savent, sans succès. Toutes les suggestions s'il vous plaît.

+0

Pouvez-vous inspecter et vérifier si 'données sms =" < ? php echo "$ id";?> "' la valeur de data-sms dans le HTML a-t-elle des espaces? – RRK

+0

Ne pouvez-vous pas simplement utiliser $ (this) .val() '? – RRK

Répondre

2
  1. <?php echo"$id"; ?> est erroné (erreur de syntaxe).

Ajouter une place là comme: -

<?php echo $id; ?> 
  1. passe this comme une référence à la fonction et de les utiliser dans le code javascript.

function checkSmsText(elem) { 
 
    var id = $(elem).attr('data-sms');// better to use $(elem).data('sms'); 
 
    console.log(id); 
 
    sms = $(elem).val(); 
 
    console.log(sms); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea class="form-control smstext" data-sms="1" name="sms-1" id="sms-1" onkeyup="checkSmsText(this);" onchange="checkSmsText(this);"></textarea>

+2

Parfait. Merci – Nita

-1

Utilisez data = "SMS-" au lieu de données sms = ""

+4

Bienvenue sur StackOverflow et merci pour votre aide. Vous pourriez vouloir améliorer votre réponse en ajoutant quelques explications. –