2011-01-18 3 views
0

У меня есть jquery, который предотвращает изменение нескольких полей выбора при установке галочки. Это работает нормально, но я не могу заставить себя работать. Мне нужно, чтобы выбор снова работал, когда флажок отключен.JQuery unbind issue

$("input#same").live('click', function() { 
    if ($("input#same").is(':checked')) { 
     // Checked, copy values 
     $("input#shipping_first_name").val($("input#first_name").val()).attr("readonly", true); 
     $("input#shipping_last_name").val($("input#last_name").val()).attr("readonly", true); 
     $("input#shipping_address").val($("input#address").val()).attr("readonly", true); 
     $("input#shipping_address2").val($("input#address2").val()).attr("readonly", true); 
     $("input#shipping_city").val($("input#city").val()).attr("readonly", true); 
     $("select#shipping_state").val($("select#state").val()).bind("change", function() { 
      $("select#shipping_state").val($("select#state").val()) 
     }); 
     $("input#shipping_zip").val($("input#zip").val()).attr("readonly", true); 
     $("select#shipping_country_code").val($("select#country_code").val()).bind("change", function() { 
      $("select#shipping_country_code").val($("select#country_code").val()) 
     }); 
    } else { 
     // Clear on uncheck 
     $("input#shipping_first_name").val("").removeAttr("readonly"); 
     $("input#shipping_last_name").val("").removeAttr("readonly"); 
     $("input#shipping_address").val("").removeAttr("readonly"); 
     $("input#shipping_address2")..val("").removeAttr("readonly"); 
     $("input#shipping_city").val("").removeAttr("readonly"); 
     $("select#shipping_state").val("").unbind("change"); 
     $("input#shipping_zip").val("").removeAttr("readonly"); 
     $("select#shipping_country_code").val("").unbind("change"); 
    } 
}); 
$('#order').live('submit', function() { 
    $('input[type=submit]', this).attr('disabled', 'disabled'); 
}); 
}); 
+0

Вы, скорее всего, не добавили пустую строку в список значений окна выбора, поэтому код val ('') не работает. Кроме того, вы можете просто установить параметр выбора в первый вариант в поле выбора, если val() не работает вообще. – Samnan

+0

У вас нет ошибки здесь: $ ("input # shipping_address2") .. val (""). RemoveAttr ("readonly"); Возможно, в этом и суть, почему вы не используете javascript. – ikostia

ответ

1

Используйте .die(), когда вы подключили событие, используя live. См. Здесь: http://api.jquery.com/die/

+0

Это было лишнее. ошибка, как сказал ikostia. Все работает сейчас! благодаря – user579984