更新多个html元素的默认值

时间:2015-12-30 13:06:25

标签: jquery

我有一个可以保存到文件并重新打开的html报告 重新打开文件时,会出现一个“刷新”按钮,用于更新数据库中的某些信息。

它确实会带来新值,但在保存报告并重新打开时,旧值仍然存在。

保存后,我会执行以下操作。

function saveDocument(){
    var pat_id = $("#pat_id").val();
    var doc_id = $("#doc_id").val();
    var htmlText = "<html>" + $("html").html() + "</html>";

    return      $.ajax({
        type: "POST",
        url: "save.php",
        data: { pat_id:pat_id, doc_id:doc_id ,htmlText:htmlText},
        success:function(data) {
            console.log(data);
            if(data == true){ 
                alert("Saved successfully.");
            } else {
                var msg = "The file failed to save specified location bellow. Please check.\r\n";
                var msg = msg + data;
                alert(msg);
            }
        }
    });
}

所以我的问题在于第4行

var htmlText = "<html>" + $("html").html() + "</html>";

未选择刷新设置的ne值。

刷新如下所示。

    function getRefresh(){
        var pat_id = $("#pat_id").val();
        var hosp_id = $("#hosp_id").val();
        var unit_id = $("#unit_id").val();

        $.ajax({
            type: "POST",
            url: "refresh.php",
            data: { pat_id:pat_id,
                    hosp_id:hosp_id,
                    unit_id:unit_id
            },
            success: function(data) {
                var json = $.parseJSON(data);

                $('#dad').val(json.dad);
                $('#dtd').val(json.dtd);
                $('#consResp').val(json.consResp);
                $('#ddd').val(json.ddd);
                $('#disTime').val(json.disTime);
                $('#los').val(json.los);
                $('#transTo').val(json.transTo);
                $('#patName').val(json.patName);
                $('#adNo').val(json.adNo);
                $('#dob').val(json.dob);
                $('#gender').val(json.gender);
                $('#weight').val(json.weight);
                $('#AddressTop').val(json.AddressTop);
                $('#PriDg').val(json.PriDg);
                $('#botPICUCons').val(json.botPICUCons);
                $('#botSpeCons').val(json.botSpeCons);
                $('#gpFullName').val(json.gpFullName);
                $('#gpAddressTop').val(json.gpAddressTop);
                $('#admFrom').val(json.admFrom);
            }
        });
    }

如果我在报告中更改了单数输入,我会按如下方式更新值。

        $("html").on("change","input[type='text'], input[type='date'], input[type='time']", function() {
            isDirty = (this.defaultValue !== this.value);
            if (isDirty)
                this.defaultValue = this.value;
        });

但是对于“刷新”按钮,我不知道如何将上述内容作为质量分配。

这个问题与建议的不一样,因为我没有尝试更新“this”。我试图更新关于AJAX成功的十几个值。

工作流程

  
      
  1. 从DB创建html文档。      
        
    • 以当前在DB中反映的值打开。
    •   
  2.   
  3. 现在,您可以编辑报告中允许的可编辑字段。
  4.   
  5. 点击“保存”,即可保存报告。
  6.   
  7. 从数据库重新打开创建的报告。 (保存的html文件被调用)
  8.   
  9. 点击“刷新”以更新数据库中的字段      
        
    • 使用AJAX调用获取的新值,现在反映在打开的报表中   浏览器
    •   
  10.   
  11. 单击“保存”。      
        
    • 新导入的值不会保存,即使它们显示在浏览器中打开的报告中。
    •   
  12.   

怀疑旧值可能仍会反映在虚拟DOM中。因此为什么要做

var htmlText = "<html>" + $("html").html() + "</html>";

从虚拟DOM中获取html表示(我怀疑)不会传递要保存的NEW / REFRESHED值。

希望更有意义。

工具栏的片段,其中包含用于调用操作的按钮

<div class="no-print">
    <div class="buttonBar">
        <input type="button" class="button" value="Print" onclick="printMe()">
        <input type="button" class="button" value="Save" onclick="getPageHTML()">
        <input type="button" class="button" value="Refresh" onclick="getRefresh()">
    </div>
</div>

以下是getPageHTML()代码段

    function getPageHTML() {
        saveDocument().then(function(){
            alert("Saved successfully.");
            window.close();
        });
        return false;
    }

1 个答案:

答案 0 :(得分:3)

使用.val()设置值实际上不会更新value属性 - 它只会更新视图中的值。如果您需要更新属性,请手动设置:

.attr("value", val);