javascript - 使用 JavaScript 设置 gridview 内文本框的格式

标签 javascript c# asp.net

如何使用 JavaScript 设置 gridview 内文本框的格式。 这是我的 gridview 列的样子:

<Columns>
    <asp:TemplateField>
        <ItemTemplate><asp:ImageButton runat="server" id="imgbtnEnterAmt" ImageUrl="~/Images/bullet_list.png" Width="12px" Height="12px" OnClick="imgbtnEnterAmt_Click" /> </ItemTemplate> 
    </asp:TemplateField>

    <asp:BoundField DataField="particulars" HeaderText="HOSPITAL CHARGES/ PARTICULARS" />

    <asp:TemplateField HeaderText="ACTUAL">
        <%--<ItemTemplate><asp:TextBox runat="server" ID="txt_ipamt" OnTextChanged="txt_ipamt_TextChanged" AutoPostBack="true"></asp:TextBox> </ItemTemplate> --%>
        <ItemTemplate><input type="text" id="txth_ipamt" onblur="format_amt()" /> </ItemTemplate>
    </asp:TemplateField>

    <asp:BoundField DataField="deductions" HeaderText="DEDUCTION/ PHILHEALTH" />
</Columns>

我的 javascript 格式化文本框:

function format_amt()
        {
            var str_amt = document.getElementById('txth_ipamt').value;
            var n = parseFloat(str_amt).toFixed(2);
            document.getElementById('txth_ipamt').value = n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
        }

问题是,当我倾向于添加更多行时,只有第一个文本框在 onblur 上格式化,当再次触发 onblur 事件时,文本框再次格式化,导致错误的输出。

最佳答案

更改对 JavaScript 函数的调用以将文本框作为参数传递。您可以使用 this 关键字来执行此操作。

<input type="text" id="txth_ipamt" onblur="format_amt(this)" />

然后在您的函数中,只需使用参数即可。

function format_amt(textbox)
{
    var str_amt = textbox.value;
    var n = parseFloat(str_amt).toFixed(2);
    textbox.value = n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

关于javascript - 使用 JavaScript 设置 gridview 内文本框的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211737/

相关文章:

java - Beanshell - 使用 arraylist

javascript - 点击事件在 dcmads 上不起作用

javascript - Dojo 有类似 jQuery 的 :has() selector? 之类的东西吗

c# - 实现永无止境的任务的正确方法。 (计时器与任务)

c# - 从 asp.net razor View 调用 ajax 请求

asp.net - 仅当满足页面中的所有验证时如何触发 DropDownList AutoPostBack

javascript - 将 httpclient 响应格式化为 *ngFor?

C# 不可变整数

asp.net - 为什么 Aspx 页面在 javascript 调用后重新加载

asp.net - 没有表单标签的 RegisterClientScriptBlock