jQuery如果readonly = true只清楚表单的一部分

时间:2012-04-29 14:32:03

标签: forms readonly jquery

我有2个jQuery代码段,第1个是readonly,第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,则不重置“handle”值

否则重置两者,所以我需要获取第一个片段的状态(切换只读)并允许第二个(表单)区分它的真或假。

我成功地尝试了这个:但它没有用。

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

1 个答案:

答案 0 :(得分:1)

请尝试使用此代码:

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

也可以使用

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

而不是

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