Javascript 需要有关如何为文本框指定正确值的逻辑帮助吗

Javascript 需要有关如何为文本框指定正确值的逻辑帮助吗,javascript,asp.net,jquery,c++,Javascript,Asp.net,Jquery,C++,我正在将一个值传递给最终使用javascript分配给文本框的表单。该值是基于另一页/表单中的值进行的计算。但是,文本框是可编辑的 当使用以前保存的数据重新加载表单时,如果文本框在保存时被手动编辑,我不希望文本框的值被另一个页面中预先计算的值覆盖 另一项规定是,可以更改具有创建计算所依据的值的页面/表单。因此,我还想检查计算值是否自上次加载以来发生了更改,如果是,请将其加载到手动输入的值上 所以。。。 如果文本框为空,则填充计算值 否则如果 手动输入的值优于计算值 否则如果 自上次计算以来,计算

我正在将一个值传递给最终使用javascript分配给文本框的表单。该值是基于另一页/表单中的值进行的计算。但是,文本框是可编辑的

当使用以前保存的数据重新加载表单时,如果文本框在保存时被手动编辑,我不希望文本框的值被另一个页面中预先计算的值覆盖

另一项规定是,可以更改具有创建计算所依据的值的页面/表单。因此,我还想检查计算值是否自上次加载以来发生了更改,如果是,请将其加载到手动输入的值上

所以。。。 如果文本框为空,则填充计算值 否则如果 手动输入的值优于计算值 否则如果 自上次计算以来,计算值已更改,它优于手动输入的值


这一切的另一个问题是,我如何确定用户是否在文本框中键入了值以确定该值是否是手动输入的?

您可以通过几个会话变量来完成这一点。第一个会话变量是文本框的值。因为您有另一个页面为您生成值,所以您不能依赖ViewState为您存储值,它只对页面上的回发起作用

第二个会话变量是一个简单的布尔值,可以调用IsCalculated。这可以根据手头的情况设置为true或false

最后一步是何时触发计算值的更改。您可以使用jQuery甚至标准Javascript轻松地将TextChanged事件连接到TextBox。除非您还想设置AJAX来设置会话变量,否则最好的选择是有一个名为IsCalculated的隐藏表单字段,该字段也会被TextChanged事件修改

加载“主”页面时,您可以轻松实现上面列出的规则,其中的值需要进入文本框。如果随后手动更改该值,则会触发JavaScript事件,当您转到“计算”页面时,您需要检查隐藏的表单字段并相应地设置会话变量IsCalculated。您可以执行任何需要的计算,返回“主”页面,并相应地再次实现显示规则


注意:您在问题中提到,计算出的值将传递给页面,我假设是通过URL参数传递的,这就是为什么您只需要一个会话变量来跟踪TextBox的值。如果不是这样,您可能需要第二个会话变量。一个用于跟踪文本框值,另一个用于跟踪输入的计算值。

我建议将所有这些值存储在表单的隐藏字段中。一旦你把它们放在页面上,你就可以使用JavaScript轻松地进行任何比较