【问题标题】:Validate Input Radio for Jquery not working value checked验证 Jquery 的输入单选未检查工作值
【发布时间】:2013-02-21 04:20:36
【问题描述】:

我有这个 HTML:

<div class="produtoListaDescTamanho">
  <label class="textoPadrao pequeno laranja"><input type="radio" name="tamanho-324" value="9"><b>Frango Teriaky R$ 6.00&nbsp;&nbsp;&nbsp;</b></label>
  <label class="textoPadrao pequeno laranja"><input type="radio" name="tamanho-324" value="8"><b>Camarão R$ 6.00&nbsp;&nbsp;&nbsp;</b></label>
  <label class="textoPadrao pequeno laranja"><input type="radio" name="tamanho-324" value="7"><b>Salmão e Queijo Qualho R$ 6.00&nbsp;&nbsp;&nbsp;</b></label>
  <label class="textoPadrao pequeno laranja"><input type="radio" name="tamanho-324" value="6"><b>Salmão R$ 6.00&nbsp;&nbsp;&nbsp;</b></label>
  <label class="textoPadrao pequeno laranja"><input type="radio" name="tamanho-324" value="10"><b>Mignom R$ 6.00&nbsp;&nbsp;&nbsp;</b></label><br><br>
 </div>

并且这个 Jquery 不能用于验证是带有 Jquery 的输入单选,var tamanho = undefined。 jQuery代码:

$(document).ready(function(){$('.produtoAddCarinho').live("click",(function(){    
  alert(this.id);
  var tamanho = $('tamanho-324:checked').val(); // or $('input[name=tamanho-'+this.id+']:checked', '#tabela_geral').val();
  var produto = document.getElementById('desc-'+this.id).innerHTML;       

  if (tamanho == undefined)
  {
    $().toastmessage('showErrorToast', "Selecione o tamanho, para adiconar o produto <br><br>" + produto );
  }
  else
  {
    Inserir(this.id, tamanho, produto);        
  };
  temp = document.getElementsByName('tamanho-'+this.id);
  $(temp ).removeAttr('checked');
  $(temp ).attr('previousValue', false);
}))});

tks

【问题讨论】:

  • live 已弃用,请改用on..
  • 试试$('input[name="tamanho-'+this.id+'"]:checked')(即,在名称属性的值周围添加双引号)。
  • 元素&lt;tamanho-324&gt; 不存在。你的选择器是错误的。请改用input[name='tamanho-324']
  • 这与jquery-validate插件无关。请在标记时更加小心。谢谢。已编辑。

标签: jquery input validation radio


【解决方案1】:

在 jquery 中试试这个使用名称选择器。

var tamanho = $('input:radio[name="tamanho-324"]:checked').val();

【讨论】:

    【解决方案2】:
    repalce   
    
    temp = document.getElementsByName('tamanho-'+this.id);
    $(temp ).removeAttr('checked');
    $(temp ).attr('previousValue', false);
    
    
    with
    
    $('#tamanho-'+this.id ).each(function( index ) {
    this.removeAttr('checked');
    this.attr('previousValue', false);
    });
    

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 2017-04-04
      • 1970-01-01
      • 2011-09-27
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      相关资源
      最近更新 更多