jquery uncheck checkbox проблема

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

это мой код флажка:

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

5
задан sinini 12 August 2011 в 21:21
поделиться