文本框仅在选中第一个单选按钮时接受数字

时间:2018-11-09 02:37:04

标签: javascript jquery

我有四个单选按钮,我想当用户单击第一个单选按钮时,输入文本框只能接受数字,但是如果他们选择其他单选按钮,则只能接受数字和文本。下面是我的代码:

[Company', 'Date', 'Headline', 'Page', 'Subtext', 'Time','Year', 'Sentiment analysis']

我尝试使用下面的代码,但是当我选择其他单选按钮时,我无法键入文本,只需输入数字即可。我是否还需要放?我需要自动更改而不刷新页面。

<input class="form-control" type="text" id="usr_matriculation" maxlength="40" name="usr_matriculation" required="required">

    <div class="radio">
        <label class="radio-inline"><input type="radio" onclick="il.Form.showSubForm('subform_usr_id_type_1', 'usr_id_type', null);" name="usr_id_type" id="usr_id_type_1" value="1">
        New Identity Card No.</label>

    </div>


    <div class="radio">
        <label class="radio-inline"><input type="radio" onclick="il.Form.showSubForm('subform_usr_id_type_2', 'usr_id_type', null);" name="usr_id_type" id="usr_id_type_2" value="2">
        Passport No.</label>

    </div>


    <div class="radio">
        <label class="radio-inline"><input type="radio" onclick="il.Form.showSubForm('subform_usr_id_type_3', 'usr_id_type', null);" name="usr_id_type" id="usr_id_type_3" value="3">
        Army No.</label>

    </div>


    <div class="radio">
        <label class="radio-inline"><input type="radio" onclick="il.Form.showSubForm('subform_usr_id_type_4', 'usr_id_type', null);" name="usr_id_type" id="usr_id_type_4" value="4">
        Police No.</label>

    </div>

我的小提琴:https://jsfiddle.net/designblog4u/yock8zdw/

2 个答案:

答案 0 :(得分:1)

这可能不是最好的解决方案,但我已经进行了一些测试。

<input type="text" id="i">

<input checked type="radio" id="r_n" name="rn">
<input type="radio" id="r" name="rn">
<input type="radio" id="r" name="rn">
<input type="radio" id="r" name="rn">

这段代码可以帮助您找到正确的方法或改进自己的代码。

$("#i").keyup(function () {
  if ($('#r_n').is(':checked')) {
  console.log("Validating #r1...")
  // Filter non-digits from input value.
  this.value = this.value.replace(/\D/g, '');
}
else {
  console.log("Validating the other radios")
  this.value = this.value.replace(/[^A-Za-z0-9]+/g, '');
}
});
// Optional: Delete input value when radio changes
$('input:radio[name="rn"]').change(
function(){
  $("#i").val('');
});

答案 1 :(得分:0)

单击第一个添加事件的按钮时,会在keyup中查找$('input[name="usr_matriculation"]'),因此每次无法键入文本时都只需要输入数字即可。