2016-11-26 12 views
0

私はテキストボックスを持っており、私は入力変更イベントでそのデータの検証を行っています。 は、私は、テキストフィールド内の特定の単語の存在を確認し、このキーワードが存在する場合、それ以外の私は警告を示していると私は、入力ボックスがロードされますjqueryを使用して変更イベントのテキストボックス値をリセットします

<input type="text" value="$name$" id="text_messageinput" /> 

この時点で値をリセットする、さらに進んでいます値$名$を持つユーザーは、私が検証エラーが

を発生したとき、私は戻って値をリセットする方法 そうするために、私は

$("#text_messageinput").on('input', function() { 
     var input_value = $(this).val(); 
     if (input_value) { 
      var inputs_ok = true; 
      var selected_name = $("#chk_addname").is(":checked"); 
      if (selected_name == true) { 
       var text_input = $("#text_messageinput").val(); 
       if (text_input.indexOf("$name$") === -1) { 
        alert("$name$ should be in message"); 
        inputs_ok = false; 
        //i have to reset textbox value to prev value 
       } 
      } 
     } 
    }); 

ので、このコードを試してみましたことを防ぐために持っているテキストのこの部分を編集しようとすると、

+0

あなただけのテキストボックスの編集を無効にしますか? – xzegga

+0

@xzeggaいいえユーザーはテキストボックスのコンテンツを編集できますが、キーワードは編集できません。残りの部分はすべて編集可能です –

+0

この回答を確認してください:http://stackoverflow.com/a/15181639/1057007 – xzegga

答えて

1

このようなものが役立ちます。古い値を手動で保存し、これを使用して値をリセットします。

$("#text_messageinput").on('input', function() { 
 
     var input_value = $(this).val(); 
 
     if (input_value) { 
 
      var inputs_ok = true; 
 
      var selected_name = $("#chk_addname").is(":checked"); 
 

 
       var text_input = $("#text_messageinput").val(); 
 
      
 
       if (text_input.indexOf("$name$") === -1 || text_input == "") { 
 
        alert("$name$ should be in message"); 
 
        inputs_ok = false; 
 
            $("#text_messageinput").val($("#text_messageinput").attr('data')); 
 
       } 
 
       else 
 
       { 
 
        $("#text_messageinput").attr('data',text_input); 
 
       } 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" data="$name$" value="$name$" id="text_messageinput" />

+0

これは私が探しているものですが、私の場合は値が時々リセットされません。そのエラー警告を表示していますが、古い状態にリセットされていない –

+0

あなたのコードをjsfiddleまたはスタックスニペットで共有できますか?あとで見てみます – Deep

関連する問題