【问题标题】:removing an Attribute inside an input field删除输入字段中的属性
【发布时间】:2012-09-24 02:22:41
【问题描述】:

我想删除这个属性

class="validate[custom[card]] text-input"

当取消选择包含值“CreditCard”的收音机时,在我名为“card”的输入字段中。这是我的单选框的脚本:

<script>
$(document).ready(function() {
    $("input[name$='sel']").click(function() {
        var test = $(this).val();

        $("div.desc").hide();
        $("#sel" + test).show();
    });
});
</script>

和输入字段

<table><tr><td>

<p> Credit/Debit Card<lable  style="margin-right:1px;"></lable><input
type="radio" name="sel" id="sel"  value="CreditCard"
class="validate[required] radio-input" /> </p> 


<p> Paypal<input type="radio" id="sel"  name="sel" value="Paypal"   />
</p>


<p> Wire Transfer<input type="radio" id="sel"  name="sel"
value="WireTransfer"  /> </p>

<!====================================================================================> 
</td<td>

<!====================================================================================> 
<div id="selCreditCard" class="desc"> <label for="card"><strong>Card
Number<font color=red size=3> *</font></strong></label>
        <input name="card"   type="text"  id="card" value=""  style="width:85px;" class="validate[custom[card]] text-input" />
</div>
<!====================================================================================> 
<div id="selPaypal" class="desc" style="display:
none;margin-left:20px;margin-top:1px;margin-bottom:1px;"> paypal
</div>
<!====================================================================================> 
<div id="selWireTransfer" class="desc" style="display:
none;margin-left:20px;margin-top:0px;margin-bottom:-5px;"> wired
</div>
<!====================================================================================>
</td></tr></table>

当用户取消选择单选时,该属性将被返回。

【问题讨论】:

  • 请为此创建一个jsfiddle.net,以便为想要帮助您的人们提供一个良好的游乐场。
  • 您是否考虑过使用 data- 属性进行验证,而不是 validate[required] 作为一个类? data-validate="required"

标签: javascript input attributes field


【解决方案1】:

看来您正在使用 jQuery。您想删除类属性。

在 jquery 中有removeClass() 方法。

所以,你会这样做:

$("input[name$='sel']").removeClass("validate text-input");

注意: *validate[custom[card]]* 是一个非常奇怪的类名称。我怀疑它不是一个有效的类名称。

【讨论】:

  • 它是我的正则表达式代码,这是一个正确的代码,问题是我无法删除它
  • 尝试使用我所说的 removeClass() 方法。
【解决方案2】:

要使用 jQuery 删除属性,您可以使用 removeAttr(attrName) 方法。 要删除特定类,您可以使用removeClass(className)

发布 jquery 示例,因为您似乎正在使用 jquery。

$("#input").removeAttr("class") // removes the entire attr (all classes/values)
$("#input").removeClass("myClass") // removes just the class called myClass

【讨论】:

  • 我已经删除了属性,问题是我无法找回它
  • 一旦删除它就消失了。您可以使用addClass('classname') 将类添加到属性或.attr('class', 'className')。如果您想在删除之前保存对该属性的引用,您也可以这样做。
【解决方案3】:

这样的事情会起作用:

    var radio_select="";
        $(document).ready(function() {
        if(radio_select!="")
        {
        previous_radio_select_id=radio_select_id;
        if(radio_select=="CreditCard")
        {
        $('.validate[custom[card]] .text-input').removeClass('validate[custom[card]] text-input');
        }
        }
        radio_select=$('form input[type=radio]:checked').val();
radio_select_id=$('form input[type=radio]:checked').attr('id');
        });

【讨论】:

    【解决方案4】:

    好的解决了我的问题

    我用过

    <script>
    $(document).ready(function() {
        $("input[name$='sel']").click(function() {
            var test = $(this).val();
    
            $("div.desc").hide();
            $("#sel" + test).show();
    
         if(test != "CreditCard"){
             $("#card").prop('class','')
             }
         else{
                  $("#card").prop('class','validate[custom[card]] text-input')
         }  
        });
    });
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 2017-08-20
      相关资源
      最近更新 更多