1

Checkbox当我在 a 中写任何东西时,我想改变我的状态,textbox所以我做到了

<asp:CheckBox ID="chkIceChest" Text="Ice Chest" runat="server" />
<asp:TextBox ID="txtIceChest" Text="$ cost" runat="server" CssClass="moch-cost" AutoPostBack="true" OnTextChanged="CalculateStand" />

protected void CalculateStand(object s, EventArgs e)
{
     double total = 0, cost = 0;
     if (txtIceChest.Text.Length > 0 && txtIceChest.Text != "$ cost")
     {
         cost = Convert.ToDouble(txtIceChest.Text.Replace("$", ""));
         total += cost;
         if (cost > 0) chkIceChest.Checked = true;
     }
}

但它不工作!!!!为什么 ?

4

1 回答 1

4

客户端方法怎么样?我的意思是,老实说,像这样的 UI 操作最适合那里。首先,您需要稍微更改一下标记:

<asp:CheckBox ID="chkIceChest"
              ClientIDMode="Static"
              Text="Ice
              Chest" runat="server" />
<asp:TextBox ID="txtIceChest"
             ClientIDMode="Static"
             Text="$ cost"
             runat="server"
             CssClass="moch-cost" />

现在你需要一点 JavaScript,把它扔到你的ASPX页面上:

<script type="text/javascript">
    $('#txtIceChest').blur(function() {
        var total = 0;
        var cost = 0;
        var val = $('#txtIceChest').val();
        var chkIceChest = $('#chkIceChest');

        if (val && val.length > 0 && val != "$ cost") {
            cost = val.replace('$', '');
            total += cost;
            if (cost > 0) {
                chkIceChest.attr('checked', 'checked');
            }
        }
    });
</script>

但是这种方法会发生在浏览器中并且对您来说是实时的。此外,该值将被回传,就像用户选中了复选框一样。

于 2013-06-12T16:35:58.673 回答