2017-09-23 123 views
1

我有一个结果列表。在这些结果中,每个都包含<textarea>。 (多个文本域)jquery textarea选择器问题

<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> 

我有问题得到data-sms -attribute的值,并作为结果,$id数。

的jQuery:

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

我试过多种选择知道我,没有一个成功的。任何建议请。

+0

您可以检查,并检查是否'数据短信=“< ?php echo“$ id”;?>“HTML中的data-sms的值有空格吗? – RRK

+0

难道你不能只使用'$(this).val()'? – RRK

回答

2
  1. <?php echo"$id"; ?>是错误的(语法错误)。

添加空间存在,如: -

<?php echo $id; ?> 
  • this作为对函数的引用,并用它们为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

    完美。谢谢 – Nita

    -1

    使用数据= “SMS-” 的代替数据短信= “”

    +4

    欢迎来到StackOverflow并感谢您的帮助。你可能想通过添加一些解释来让你的答案更好。 –