У меня есть флажок и поле ввода со значением по умолчанию, дающим информацию о том, во что писать. если флажок установлен, курсор должен быть в фокусе в поле ввода, и оно должно быть пустым. если я сниму флажок, значение по умолчанию должно быть снова видимым.
это мой код флажка:
<input name="city" type="checkbox" id="checkcity"/>
<input type="text" name="city" id="city" value="###VALUE_CITY###" />
и у меня есть следующий jquery:
var $city = $("input#city");
var cityValue = "Your city...";
!$city.val() && $city.val(cityValue);
$('#checkcity').click(function(){
if ($(this).is(':checked')) {
$city.focus();
} else {
$city.val(cityValue);
$(this).attr({checked: false});
}
});
// начало редактирования У меня есть еще код, возможно, ошибка в этой части (сначала я подумал, что это не актуально, но, может быть, это так, извините)
это должно сделать следующее (что также отлично работает), когда я нажимаю прямо на поле ввода, флажок установлен, когда я оставляю его без содержимого, флажок не установлен, текстовое значение по умолчанию «ваш город ...» находится внутри поля ввода, когда я ввожу какой-либо другой текст, флажок остается установленным. когда я снимаю флажок, значение по умолчанию находится внутри поля ввода. единственная проблема в том, что когда поле ввода пусто, и я снимаю флажок ...это не сработает
!$city.val() && $city.val(cityValue);
$city.focus(function() { $city.val() == cityValue && $city.val("");$('#checkcity').attr({checked: true});});
$city.blur(function() {
if ($city.val().length > 0 && $city.val() != cityValue){
$('#checkcity').attr('checked', true);
}
if ($city.val() == "") {
$('#checkcity').removeAttr('checked');
$city.val(cityValue);
}
});
$city.val() && $('#checkcity').attr('checked', true);
$city.val() == cityValue && $('#checkcity').removeAttr('checked');
// edit end
Он отлично работает, чтобы установить флажок и установить курсор на input # city, но если я сниму флажок, он будет работать только так, как должен, пока я нажимаю левая кнопка мыши вниз (флажок не установлен и значение по умолчанию в поле ввода), но после того, как кнопка поднимается, флажок снова устанавливается, а поле ввода становится пустым. Когда я снимаю флажок и перемещаю курсор во время нажатия левой кнопки мыши из области флажка, он также работает нормально.