2016-11-26 2 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 NO пользователь может редактировать содержимое текстового поля, но не ключевое слово. Остальная часть редактируется –

+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

Смежные вопросы