2012-02-29 3 views
1

Существует одна кнопка создания категории и один раз пользователь нажимает на создание учетной записи и ввод текста в текстовом поле, а BLUR должно быть предупреждающее, что «Нажмите« Сохранить, чтобы сохранить категории ». если пользователь нажимает кнопку «Сохранить», предупреждение не должно появляться.Об изменении предупреждения текстового поля, а не при нажатии кнопки

Я пытаюсь использовать функцию размытия, но когда пользователь нажимает кнопку «Сохранить», есть также предупреждение для этого, что является наилучшим способом игнорировать предупреждение при нажатии кнопки «Сохранить».

<button type="submit" class="button" >Save</button> 

<input type="text" name="category_name"> 

$("input[name=category_name]").change(function(){  
    alert("Click save to save categories");          
}); 
+1

ли вы специально должны оповещать сообщение на экран, чтобы сказать кому-то, что они инстинктивно делать? Мне кажется плохо для UX для меня. –

ответ

1

попробуйте, чтобы on onClick() установил переменную в true. Затем onBlur() попытается вызвать предупреждение через 1 секунду (или меньше) с помощью setTimeout() и проверить, чтобы переменная была ложной. Если это правда, не вызывайте предупреждение. Надеюсь, что имеет смысл

+0

Не работает. – Dayana

+0

var flag = false; $ ('button.button'). Click (function() { var flag = true; }); $ ("вход [имя = category_name]") жить ("размытость", функция() { если (флаг == FALSE) { предупреждение ("Пожалуйста, сохраните категорию первой.");} }). ; – Dayana

+0

в функции события click вы должны избавиться от части 'var'. Он уже использовался раньше. –

2

Попробуйте

<script type="text/javascript"> 

var blurTimeout; 

function cancelBlur(){ 
    clearTimeout(blurTimeout); 
} 

$(function(){ 

    $("input[name=category_name]").blur(function(){  
     blurTimeout = setTimeout(function(){ 
      alert("Click save to save categories");          
     }, 200); 
    }); 

}); 

</script> 

<button type="submit" class="button" onclick="cancelBlur();">Save</button> 
<input type="text" name="category_name" /> 

Это устанавливает таймер, чтобы показать предупреждающее сообщение и, если кнопка нажата представить, он удаляет таймер, таким образом предотвращая сообщения от появления.

Убедитесь добавить onclick="cancelBlur();" к кнопке

+0

После использования этого размытия не работает ..: (( – Dayana

+0

) @Dayana в вашем коде говорит '$ (" input [name = category_name] "). Change (', вы изменили его на '$ (" input [name = category_name] "). Blur ('? И убедитесь, что jQuery .js включен;) – blackpla9ue

+0

Хорошая идея! Как и логика –

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