2014-02-05 2 views
1

Этот код был потрачен весь день, чтобы исправить его, и, похоже, нет способа найти его, но, разместив здесь вопрос.jQuery - не меняйте значение, если не проверено

FIDDLE

 $('.git_this_similar').on('change', function(){ 

      if($(this).is(":checked")) { 

$(this).closest('.gscpc_right_col_inner') 
.find('#git_wpost_fname, #git_wpost_imgtitle, 
#git_wpost_shortdesc, #git_wpost_tags') 
.attr("disabled", true); 

$(this).closest('.gscpc_right_col_inner') 
.find('.git_wpost_titleclass').on('keyup', function(){ 

$(this).closest('.gscpc_right_col_inner') 
.find('#git_wpost_imgtitle, #git_wpost_shortdesc') 
.val($(this).val()); 

var fileextension = $(this).closest('.gscpc_right_col_inner') 
.find('#git_wpost_fname').val(); 

var lastFour = '.' + fileextension.split(".").pop(); 

var gitfilename = $(this).val().toLowerCase().replace(/[\W]+/g, "_") + lastFour; 

$(this).closest('.gscpc_right_col_inner') 
.find('#git_wpost_fname').val(gitfilename); 

var git_tags = $(this).val().split(' ').join(', '); 

$(this).closest('.gscpc_right_col_inner') 
.find('#git_wpost_tags').val(git_tags); 

}); 

      } else { 

// turn off 'disabled' attribute  
$(this).closest('.gscpc_right_col_inner') 
.find('#git_wpost_fname, #git_wpost_imgtitle, 
#git_wpost_shortdesc, #git_wpost_tags') 
.attr("disabled", false); 

$(this).closest('.gscpc_right_col_inner') 
.find('.git_wpost_titleclass') 
.on('keyup', function(){}); 
} 

}); 

То, что я на самом деле нужно сделать, это:

После того, как флажок щелкнул

>  IF (the checkbox is checked) 
>  { 
>  Use "Post Title" field value for all input fields! 
>  } 
>  ELSE 
>  { 
>  Don't use "Post Title" field value for other input fields! 
>  } 

Но что я здесь другие поля дорожим держать следующие значение «Заголовок заголовка», когда оно изменено, когда флажок не установлен.

Что мне делать, чтобы убить эффект keyup, который произошел, когда флажок установлен?

+3

Вы можете сузить свой код – Satpal

+0

Не уверен, что вы имеете в виду, но я редактировал код более удобочитаемый. И есть демо-версия скрипта с полными кодами. – KeepMove

ответ

2

Вы можете unbind() событие на другое заявление:

else { 
    // turn off 'disabled' attribute  
    $(this).closest('.gscpc_right_col_inner').find('#git_wpost_fname, #git_wpost_imgtitle, #git_wpost_shortdesc, #git_wpost_tags').attr("disabled", false); 
    // Unbind Keyup 
    $(this).closest('.gscpc_right_col_inner').find('.git_wpost_titleclass').unbind('keyup'); 
} 

Check Это демо http://jsfiddle.net/uxTTB/4/

+0

Спасибо .. Другим способом, который мог бы сделать трюк, является 'off ('keyup')' – KeepMove

+0

Yep @AriSusanto, и вы можете улучшить сохранение этого в var '$ (this) .closest ('. Gscpc_right_col_inner');' http : //jsfiddle.net/uxTTB/5/. Просто не ищите в любое время для того же элемента :) – DaniP

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