当代码从后面执行时,从 javascript 更新的文本框值不存在

Posted

技术标签:

【中文标题】当代码从后面执行时,从 javascript 更新的文本框值不存在【英文标题】:Textbox value updated from javascript isn't present when code executes from behind 【发布时间】:2018-12-01 11:59:09 【问题描述】:

我有一个案例,文本框的值是在页面加载时从数据库中获取的。单击按钮时,我使用 javascript 更新文本框。但是当我尝试将值保存到数据库时,更新的新值不存在。如何保存通过 javascript 更新的信息。请帮帮我。

下面的 javascript 函数将信息添加到文本框 ApproverListObj。在页面加载时,我使用选择查询从数据库中填充所有需求。

    function AddButtonApproverList() 
        var ApproverListObj = document.getElementById("<%=ApproverList.ClientID%>");
        var ApproverListDDObj = document.getElementById("<%=ApproverListDD.ClientID%>");
        var output;

        if (ApproverListObj.value.includes(ApproverListDDObj.options[ApproverListDDObj.selectedIndex].text) == false) 
            document.getElementById("<%=ChangesMade.ClientID%>").value = "1";
            output = ApproverListObj.value.concat(ApproverListDDObj.options[ApproverListDDObj.selectedIndex].text, "; \n");
            ApproverListObj.value = output;
        
        return false;
    

使用 javascript 更新代码后,在提交按钮上,我将更新数据库,如下所示。

    protected void SubmitClaim_Click(object sender, EventArgs e)
    
        string cmdString = null, approverList = null;
        DisposeConnIfRequired();
        Conn = new SqlConnection(LoginDbCS);

        approverList = "[" + ClaimTypeDD.SelectedItem.Text + "ApproverList]";
        cmdString = ("UPDATE dbo.AdminDetails SET " + approverList + "=@ApproverList");

        SqlCommand cmd = new SqlCommand(cmdString, Conn);
        try
        
            cmd.Parameters.Add("ApproverList", SqlDbType.NVarChar).Value = ApproverList.Text;
            if (Conn.State.Equals(ConnectionState.Closed))
            
                Conn.Open();
                cmd.ExecuteNonQuery();
                Conn.Close();
            
        
        catch (Exception Ex)
        
            if (Conn != null)
                Conn.Dispose();

            Application["TheException"] = Ex;
            Response.Redirect("ErrPage.aspx", false);
            return;
        
    

但是当我检查 ApproverList 时,使用 javascript 所做的更改不存在。我不确定这里发生了什么。

【问题讨论】:

请在此处使用 或在 codepen 中发布您当前的代码,以便我们提供帮助。 @Saddy 已经更新了后面的代码和javascript。 【参考方案1】:

为此,我必须删除文本框的禁用或只读属性。而是编写了 javascript 在以下事件 onkeypress、onkeydown 和 onkeyup 上返回 false。这将阻止用户使用键盘编辑文本框。由于我已经禁用了右键单击功能,所以我不必为此烦恼。

【讨论】:

以上是关于当代码从后面执行时,从 javascript 更新的文本框值不存在的主要内容,如果未能解决你的问题,请参考以下文章

从后面的代码更改时显示文本框文本

如何从后面的代码中关闭引导模式?

当 TextInput 有焦点时,如何从键盘后面自动滑出窗口?

当执行实体框架AddOrUpdate时如何从更新中忽略一个或多个列?

从本机代码存储时,React Native AsyncStorage 无法查看来自 javascript 的更新数据

从后面的 C# 代码调用 JavaScript [重复]