0

2つのjQueryスニペットがあります。1つ目は読み取り専用のトグルで、2つ目は送信フォームです。

読み取り専用を切り替えます:

$('#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;
});

私が達成しようとしているのは

readonly = trueの場合、「ハンドル」値をリセットしないでください

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

私はこれを成功させました:しかし、それはうまくいきませんでした。

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

1 に答える 1

2

代わりに次のコードを試してください。

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

用途にも

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

それ以外の

$('#handle').attr('readonly', true)
于 2012-04-29T14:41:53.703 に答える