У меня есть флажок и поле ввода со значением по умолчанию, дающим информацию о том, во что писать. если флажок установлен, курсор должен быть в фокусе в поле ввода, и он должен быть пустым. если я сниму флажок, значение по умолчанию должно быть снова видно.
это мой код флажка:
<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');
// редактировать конец
Он работает нормально, чтобы установить флажок и установить курсор в поле ввода # city, но если я сниму флажок, он будет работать только так, как должен, пока я нажимаю левую кнопку мыши (флажок снят и значение по умолчанию в поле ввода ), но после того, как кнопка поднимается, флажок снова устанавливается и поле ввода остается пустым. Когда я снимаю флажок и перемещаю курсор во время нажатия левой кнопки мыши из области флажков, он также работает нормально.