0

伙计们,我为这段代码尝试了很多,但是从 javascript 到 jquery 的转换没有任何结果。

此代码无关紧要,因为您在工作小提琴中找到了它。我添加了这段代码,因为stackoverflow不允许我在没有代码的情况下发布..

<div class="rButtons">
<input type="radio" name="numbers" value="10" onclick="uncheck();" />10
<input type="radio" name="numbers" value="20"  onclick="uncheck();" />20
<input type="radio" name="numbers" value="other" onclick="check(this);"/>other
<input type="text" id="other_field" name="other_field" onblur="checktext(this);"/>
</div>

检查这个小提琴

http://jsfiddle.net/gDxqj/

它运作良好。单击“其他”单选按钮时,文本字段出现,单击任何其他单选按钮时,它会消失。这是该脚本的功能,并且运行良好。

现在,当我尝试将其更改为 jquery 代码时,它死了.. 我可以显示我在 jquery 中制作的代码,但没有帮助..

小提琴同样会有很大帮助..

提前致谢..

这就是我所做的

<script>
var $radios = $('input:radio[name=numbers]');
    if ($radios.is(':checked') === true) {
       $("#other_field").show();
    }     
    else
    {
       $("#other_field").hide();
    }   
</script>

我把它放在一个函数中并在单选按钮的“onchange”中调用它但没有用

4

3 回答 3

3
$(':radio').on('change', function () {
  $('#other_field')[$(this).val() === 'other' ? 'show' : 'hide']();
});

$('#other_field').on('blur', function () {
  var val = $(this).val();

  if(isNaN(val)) {
    alert('only numbers are allowed..');
  }
  else if(parseInt(val, 10) % 10 > 0) {
    alert('only multiples of 10..');
  }
});

和:

<div class="rButtons">
  <input type="radio" name="numbers" value="10" /> 10
  <input type="radio" name="numbers" value="20" /> 20
  <input type="radio" name="numbers" value="other" />other
  <input type="text" id="other_field" name="other_field" />
</div>

演示:http: //jsfiddle.net/BZGsw/

于 2013-01-23T19:47:33.153 回答
1

您只需要从您的 s 中删除onclickand并通过 jQuery 附加事件:onblurinput

$(function(){
    $('.rButtons').on('click', 'input[type="radio"]', function(ev){
        var val = $(this).val();
        val == 'other' ? check(this) : uncheck();
    });
    $('.rButtons').on('blur', '#other_field', function(ev){
        checktext(this);
    });
});

看演示

于 2013-01-23T19:45:38.760 回答
1

您可以使用.change()binchange事件来检查所选单选按钮的状态,然后应用.toggle()#other_field显示或隐藏它。

#other_field {
    display: none;
}

<div class="rButtons">
    <input type="radio" name="numbers" value="10">10
    <input type="radio" name="numbers" value="20">20
    <input type="radio" name="numbers" value="other">other
    <input type="text" id="other_field" name="other_field">
</div>

$("[name=numbers]").change(function() {
    $("#other_field").toggle(this.value === "other");
});

$("#other_field").change(checktext);

我修改了您的 CSS 以使用displayset tonone而不是visibility.

看这里。

于 2013-01-23T19:48:29.927 回答