【问题标题】:jQuery if readonly = true only clear part of formjQuery if readonly = true 只清除表单的一部分
【发布时间】:2012-04-29 14:32:03
【问题描述】:

我有 2 个 jQuery sn-ps 第一个是只读切换,第二个是提交表单。

只读切换:

$('#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 不要重置“句柄”值

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

我试过这个成功了:但是没有用。

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

【问题讨论】:

  • 检查$('#handle').attr('readonly', true) 的输出。意识到问题是什么。修复它。

标签: forms readonly jquery


【解决方案1】:

试试这个代码:

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

也可以使用

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

而不是

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

【讨论】:

    猜你喜欢
    • 2020-07-29
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多