禁用基于标签文本部分的单选按钮


Disable a Radio button based on label text portion

我有一些具有不同值的单选按钮(因此我不能像在其他情况下那样使用值)。是否有可能根据标签中可用的某个文本禁用单选按钮的单击事件?

。如果我有以下四个项目作为单选按钮,不同的产品有不同的大小和颜色,但有些项目将有类似的文字,如(0)(20)等(这是可用项目的数量)

第1项

  1. 红小(20)
  2. 红色大字(20)
  3. 红色超大(0)
  4. 红色超大超大(0)

第二项

  1. 小粉(20)
  2. 粉色大件(20)
  3. Pink Slimfit (0)

所以同样有许多产品可用,但只有类似的东西将是文本(0)

如何禁用点击事件,如果单选按钮有文本(0)在标签?

您可以使用以下代码动态禁用单选按钮。

if(condition satisfies)
{
   $(this).attr('disabled',true);
}

根据号码是否为0设置disabled属性。例如,如果您有以下标记:

<label>A (0)<input type="radio" /></label>
<label>B (32)<input type="radio" /></label>
<label>C (0)<input type="radio" /></label>
<label>D (5)<input type="radio" /></label>

你可以这样做:

$('input[type="radio"]').prop('disabled', function() {
   return $(this).parent().text().match(/'(('d+)')/)[1] == 0; 
});

Here's fiddle