添加JavaScript以填充表单字段会清除我的SQL表单中的其他字段

时间:2019-02-13 21:35:57

标签: javascript sql

我试图在将表单提交到SQL数据库之前保留表单字段值,但是当我将JavaScript添加到公式中以填充几个日期字段时,该方法有效,其他加载表单时不会填充表单字段,或者如果将其设置为自动回发

,则不会采用其选定的值。

此表单是在netFORUM Enterprise AMS中设置的,它在MS Windows Server(2016)上以.NET C#代码运行。我在一个 Web Page Detail 中有该表单,在另一下面有JavaScript。在转向JavaScript之前,我尝试使用 Form Extensions 来根据需要填充日期,但遇到了一些问题。我使用的 Form Extension 的问题是,我需要将日期字段填充到URL字符串中,这是不受欢迎的方法,尽管表单保存了正确的日期,但用户看到的是不同。

我在上一个网页的每个按钮URL中都有一个自定义“&task =“,它指示了一些表单字段行为和条件逻辑,我在此JS方法中使用的是这也指示了在SQL的SQL中提供什么日期新的网页详细信息,其中包含我的JavaScript可以将这些正确的日期字段加载到表单上。下面是用于根据URL中的“&task =“值填充这些日期表单字段的SQL / JavaScript。

由于此问题可能并非一帆风顺,因此,由于我在Toolkit环境中使用SQL和JavaScript,因此我无法提供代码片段来重现该问题。我只能使用Web浏览器开发工具来提供有效的SQL / JavaScript代码和表单周围的代码,因为我使用的是工具包。

首次加载表单:

<table id="DesignedTable" border="0" cellspacing="0" cellpadding="0">
    <tbody>
    <tr id="US424">
        <td id="US425"><div id="LabelMessageTop__UP"></div></td>
    </tr>
    <tr id="US426">
        <td id="US427"></td>
    </tr>
    <tr class="DataFormValidationTR" id="US428">
        <td class="DataFormValidationTD" id="US429">
        <div class="DataFormValidationSummary" id="ValidationSummaryTop" style="display: none;"></div>
        </td>
    </tr>
    <tr id="US430">
        <td id="DesignedCell">
        <div class=" container form-horizontal" id="DesignedDiv">
        <div id="_LayoutTable_UP">
            <fieldset style="position: relative; min-height: 0px; min-width: 350px;">
                <div align="left" class="control-group" data-avname="control_group_1_1" colspan="1" rowspan="1">
                    <label class=" control-label" id="Caption_ixo_ind_cst_key" for="ixo_ind_cst_key">Personnel Name:</label>
                    <div class="controls">
                        <select name="ixo_ind_cst_key" tabindex="13" class="margr10 pull-left" id="ixo_ind_cst_key" onchange="resetValidationState();clearTimeout(timerid); timerid=setTimeout('__doPostBack(\'ixo_ind_cst_key\',\'\')', msecondsshort); " placeholder="Please select">
                        <option selected="selected" value="">Please select</option>
                        <option value="ind_cst_key">Name of Individual (ind)</option>
                        </select>
                        <span class="help-block" id="SupportTxt_ixo_ind_cst_key">Required</span>
                        <span id="ixo_ind_cst_key_Validator" style="display: none;"></span>
                    </div>
                    <div class="controls">
                        <a tabindex="14" title="" class="btn btn-mini" id="HYPERLINK_Add_New_Indv" href="URL to carry out this task" data-original-title="">Add to List Above</a>
                    </div>
                </div>
                <div align="left" class="control-group" data-avname="control_group_2_1">
                    <div class="controls">
                        <span class="margr10 pull-left" id="TEXT_ind_eu_resident_flag_ext">Check if citizen or resident of the European Union (EU) </span></div>
                    <div class="controls">
                        <span id="Span_ind_eu_resident_flag_ext">
                            <span title="eu resident?" class="DataFormCheckBox">
                                <input name="ind_eu_resident_flag_ext" tabindex="16" id="ind_eu_resident_flag_ext" type="checkbox">
                            </span>
                        </span>
                        <input name="__ind_eu_resident_flag_ext" id="__ind_eu_resident_flag_ext" type="hidden">
                    </div>
                </div>
                <div align="left" class="control-group" data-avname="control_group_3_1">
                    <label class=" control-label" id="Caption_ixo_rlt_code" for="ixo_rlt_code">Role:</label>
                    <div class="controls">
                        <select name="ixo_rlt_code" tabindex="5" class="margr10 pull-left" id="ixo_rlt_code" onchange="resetValidationState();clearTimeout(timerid); timerid=setTimeout('__doPostBack(\'ixo_rlt_code\',\'\')', msecondsshort); " placeholder="Please select">
                            <option selected="selected" value="">Please select</option>
                            <option value="Roles Listed">Roles Listed</option>
                        </select>
                        <span class="help-block" id="SupportTxt_ixo_rlt_code">Required</span>
                        <span id="ixo_rlt_code_Validator" style="display: none;"></span>
                    </div>
                </div>
                <div class="control-group" data-avname="control_group_4_1" colspan="1" rowspan="1">
                    <div class="controls">
                        <span id="TEXT_Role_Desc">Each role's description will show here as selected.</span>
                    </div>
                    <div class="controls">Desc Role Listed Above (not selected)</div>
                </div>
                <div align="left" class="control-group" data-avname="control_group_5_1">
                    <label class=" control-label" id="Caption_ixo_start_date" for="ixo_start_date">Start Date:</label>
                    <div class="controls">
                        <span class="DataFormLabelReadOnly" id="ixo_start_date">02/14/2019</span>
                    </div>
                </div>
                <div align="left" class="control-group" data-avname="control_group_6_1">
                    <label class=" control-label" id="Caption_ixo_end_date" for="ixo_end_date">Expire Date:</label>
                    <div class="controls">
                        <span class="DataFormLabelReadOnly" id="ixo_end_date">02/14/2020</span>
                    </div>
                </div>
                <div align="left" data-avname="control_group_7_1">
                    <div class="controls"></div>
                </div>
                <div align="left" class="control-group" data-avname="control_group_8_1">
                    <div class="controls">
                        <input name="ixo_authorized_user_key_ext" id="ixo_authorized_user_key_ext" type="hidden">
                    </div>
                </div>
                <div class="controls">
                    <input name="XXXXXXXX" disabled="disabled" class="aspNetDisabled DataFormTextBox" id="XXXXXXXX" style="width: 0px; height: 0px; display: none;" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" onchange="resetValidationState();setTimeout('__doPostBack(\'XXXXXXXX\',\'\')', 0)" type="text" value="SystemTextBox">
                    <span id="XXXXXXXX_Validator" style="display: none;"></span>
                </div>
                <div id="__UP" role="status" aria-hidden="true" style="display: none;">
                    <div style="width: 1px; height: 1px; position: relative; z-index: 99998;">
                        <img id="__UPIMG" style="left: 50%; top: 50%; position: fixed; z-index: 99999;" alt="refreshing view..." src="images/updating.gif">
                    </div>
                </div>
            </fieldset>
        </div>
        </div>
        </td>
    </tr>
    <tr class="DataFormValidationTR" id="US432">
        <td class="DataFormValidationTD" id="US433">
            <div class="DataFormValidationSummary" id="ValidationSummaryBottom" style="display: none;"></div>
        </td>
    </tr>
    <tr id="US439">
        <td id="US440">
            <div id="LabelMessage__UP"></div>
        </td>
    </tr>
    </tbody>
</table>

SQL / JavaScript (在表单下方)

{BeginListSQL}
SELECT 
[StartDate] = CASE 
WHEN {task}='add' THEN CONVERT(char(10), GETDATE(), 101)
END,
[EndDate] = CASE 
WHEN {task}='end' THEN CONVERT(char(10), GETDATE(), 101)
WHEN {task}='add' OR {task}='renew' THEN CONVERT(char(10),DATEADD(year, 1, GETDATE()), 101)
END
{EndListSQL}

{BeginListDetail}

<script type="text/javascript">
var startdate = document.getElementById('ixo_start_date').innerHTML;
if (startdate=='') [|document.getElementById('ixo_start_date').innerHTML = '{StartDate}';|]
</script>

<script type="text/javascript">
document.getElementById('ixo_end_date').innerHTML = '{EndDate}';
</script>

{EndListDetail}

因此,即使JavaScript将正确的日期插入了日期字段,其他表单的字段也不会在加载时填充当前数据或在字段回发后保留新选择的数据值。

我觉得问题在于JavaScript与表单之间是如何加载还是不加载对象或列之间的交互。我希望我只需要在JavaScript中添加一些内容即可解决此问题。

我觉得我已经尽力被否决了。任何帮助表示赞赏。谢谢!

0 个答案:

没有答案