2012-04-29 9 views
0

2つのjQueryスニペットがあります。第1は読み取り専用で、第2は送信フォームです。jQuery readonly = trueの場合、フォームの一部のみを消去する

トグル読み取り専用:

$('#lock').toggle(function() { 
    $('#handle').attr('readonly', true).addClass('disabled'); 
return false; 
} , function() { 
    $('#handle').attr('readonly', false).removeClass('disabled'); 
return false; 
}); 

フォーム送信:私は達成しようとしています何

$('button').click(function() { 
var handle  = $('#handle').val(); 
var msg  = $('#msg').val(); 
var dataString = 'handle='+ handle + '&msg=' + msg; 

if(handle=='' || msg=='') { 
$('.error').fadeOut(200).show(); 
} else { 

$.ajax({ 
    type : 'POST', 
    url  : 'form.php', 
    data : dataString, 
    success : function(){ 
$('#foo').load('page.php'); 
}} 
}); 
} 
return false; 
}); 

を読み取り専用= trueの場合は、 "ハンドル" をリセットしない場合

です値

それ以外の場合は両方をリセットするので、第1スニペット(読み取り専用)のステータスを取得し、第2(フォーム)がその真偽を区別できるようにする必要があります。

私はこれをうまくやったが、うまくいかなかった。

if($('#handle').attr('readonly', true)){ 
    $('#msg').val(''); 
    }else{ 
    $('#handle, #msg').val(''); 
+1

の使用

​$('#handle').prop('readonly', true) 

ために '$( '#ハンドル')の出力を調べます。 attr( 'readonly'、true) '問題が何であるかを理解する。修理する。 –

答えて

1

は、代わりにこのコードを試してみてください。

if ($('#handle').is('[readonly]')) { 
    $('#msg').val(''); 
} 
else { 
    $('#handle, #msg').val(''); 
} 

をも代わり

$('#handle').attr('readonly', true) 
+0

ありがとうございます:) –

関連する問題