如何根据JS中的单选按钮列表设置文本框的maxLength

时间:2014-08-25 16:02:08

标签: javascript asp.net

我在ASP.Net中有一个单选按钮列表,下面有一个文本框。我希望能够根据单选按钮列表中选择的内容更改文本框的maxLength。我已经尝试了所有的东西,但我显然错过了一些东西。

这是我的JS: -

function ValidateCCN() {
    var x = document.getElementById('RadioButtonListPayment');
    var y = document.getElementById('TextBoxCCN');

    if (x.selectedIndex = "Visa")
        { y.maxLength = '5'; }
    else
        { y.maxLength = '2';}
}

这是我的HTML / ASP

<asp:Label ID="LabelCard" CssClass="labels" runat="server" Text="Select a payment option: "></asp:Label><br />
<asp:RadioButtonList ID="RadioButtonListPayment" runat="server" onchange="ValidateCCN();">
    <asp:ListItem Value="Visa">Visa</asp:ListItem>
    <asp:ListItem Value="MasterCard">MasterCard</asp:ListItem>
    <asp:ListItem Value="Discover">Discover</asp:ListItem>
    <asp:ListItem Value="American Express">American Express</asp:ListItem>
</asp:RadioButtonList>

<asp:Label ID="LabelCCN" CssClass="labels" runat="server" Text="Credit Card Number: "></asp:Label><br />
<asp:TextBox ID="TextBoxCCN" CssClass="textbox" runat="server"></asp:TextBox>

错误: -      “其他声明无效”

3 个答案:

答案 0 :(得分:0)

你有几个问题。您将在ListItems中专门设置GroupName,然后在javascript中循环访问选定的GroupName。

ASPX:

<asp:RadioButtonList ID="RadioButtonListPayment" runat="server" onchange="ValidateCCN();">
    <asp:ListItem Value="Visa" GroupName="CCType">Visa</asp:ListItem>
    <asp:ListItem Value="MasterCard" GroupName="CCType">MasterCard</asp:ListItem>
    <asp:ListItem Value="Discover" GroupName="CCType">Discover</asp:ListItem>
    <asp:ListItem Value="American Express" GroupName="CCType">American Express</asp:ListItem>
</asp:RadioButtonList>

JS

function ValidateCCN() {
    var y = document.getElementById('TextBoxCCN');
    var x = document.getElementsByName('CCType');
    for(var i = 0; i < x.length; i++) {
      if (x[i].checked) {


        if (x.value == "Visa") 
          y.maxLength = '5';
        else
          y.maxLength = '2';
        break;
      }
    }
}

此外,您应该在if语句中使用比较运算符==而不是赋值运算符=

答案 1 :(得分:0)

您在if语句中使用赋值运算符而不是比较运算符。改变这个:

if (x.selectedIndex = "Visa")

到这个

if (x.selectedIndex == "Visa")

答案 2 :(得分:0)

**js**

<script>
$(document).ready(function(){
    $('input[name="theName"]').change(function(){
        if($('#option-1').prop('checked')){
            alert('Option 1 is checked!');
            $('#name').attr('maxlength', '13');
        }else{
            alert('Option 2 is unchecked!');
            $('#name').attr('maxlength', '5');
        }
    });
});
</script>



**html**
 <body>
<input type="radio" name="theName" value="1" id="option-1">no
<input type="radio" name="theName" value="2">yes
<br>
<label>name:</label>
<input type="text" id="name"></input>

</body>