2016-11-17 3 views
0

私はこのコードをテキストエリアカウントに使用しています。それはうまくいきますが、私が下に行ったようにそれを埋め込むと、うまく動作せず、エラーもスローされません。私は今3日間以上それをしてきました。私はいくつかの助けていただきありがとうございます。PHPコードの間にjqueryの単語数と制限を追加するには

<div class="row"> 

    <label for="name" class="control-label"> 
    <?php if(isset($data['career_objective']) && $data['career_objective']!=''){?> 
      <p id="c_obj" class="text-info first " data-type="textarea" name="comments2" onclick="return update('c_obj' ,'career_obj' ,'Career Objective'); "><?php echo $data['career_objective']; ?></p> 
      <br> 
      Word Count : <span id="display_count">0</span> words. Words left : <span id="word_left">50</span> 
    <?php } else { ?> 
      <p id="c_obj" class="text-info first " data-type="textarea" name="comments2" onclick="return update('c_obj' ,'career_obj' ,'Career Objective'); ">Career Profile and Work objectives here. Not more than 50 words.</p> 
    <?php }?> 
    </label> 
<div class="controls"> 
    <a href="#" class="btn pen c_obj1"><span class="glyphicon redcolor first" aria-hidden="true">Edit</span></a> 
</div> </div> 

jQueryの一部

$("#c_obj").on('keyup', function() { 
var words = this.value.match(/\S+/g).length; 
if (words > 50) { 
    // Split the string on first 200 words and rejoin on spaces 
    var trimmed = $(this).val().split(/\s+/, 50).join(" "); 
    // Add a space at the end to make sure more typing creates new words 
    $(this).val(trimmed + " "); 
    alert("You reached your limit of 50 words."); 
} 
else { 
    $('#display_count').text(words); 
    $('#word_left').text(50-words); 
} }); 
+0

あなたは$で '#'( "c_objを")が不足していますか?それとも、タイプミスですか? –

+0

ありがとうございます。それはタイプミスでした。実際には$( "#c_obj")でも動作しません。 – pimpace

答えて

1

との参照でなければならない、私はあなたがサードパーティのライブラリを使用していることをかなり確信していますプログラムによるユーザー入力を行うためのtextarea要素を作成します。今

<p id="c_obj" class="text-info first " data-type="textarea" name="comments2" ... 

$('#c_obj').on(..pタグではなく、あなたはワードカウントを確認したいtextarea要素にイベントをバインドします。理由は、テキストエリアがまだ存在しないか、ユーザーがアクションを開始した後に動的に作成されるかのいずれかです。

ソリューション

バインド代わりに、身体または親要素のイベントとターゲットテキストエリアにkeyupイベントを委任します。

$(".parent-div").on('keyup', 'textarea', function(e) { ... 

parent-divは、フォーム要素または最も近い親要素(優先する場合)です。

は、ここではサンプルコードを参照してください - http://codepen.io/chainat/pen/VmmmKg

+0

Chainatさん、ありがとうございました。 – pimpace

0

Idは以下のhtml要素から#

$("#c_obj").on('keyup', function() { 
関連する問題