输入字段未显示默认值

时间:2011-07-07 17:46:15

标签: javascript html forms

我有一个包含一些输入字段的表单。我在大多数人身上设置了值=“这里的东西”。但是,当我在firefox中加载页面时,输入字段未填写。

Firebug显示一个值属性,其中包含正确的值。但它没有在屏幕上显示。当我提交表单时,它也不会传递值。

这是我的PHP脚本的输出,只是转储数组。

}
[servDate] => 07-07-2011
[time1] => 8:00
[odo1] => 12345
[report1] => 
[time2] => 8:30
[odo2] => 12350
[report2] => 
[time4] => 9:00
[odo4] => 12359
[report4] => SUBJECT DEPARTS HOME
[time5] => 9:30
[odo5] => 12369
[report5] => SUBJECT ARRIVES AT WORK
[time98] => 9:35
[odo98] => 12369
[report98] => 
[time99] => 10:00
[odo99] => 12399
[report99] => 
[servHrs] => 
[id] => 
)

表格如下:

<form id="reportForm">
    Service Date: <input type="text" name="servDate" id="servDate" size="10" value="<? echo date("m-d-Y"); ?>" /><button id="servDateBtn"><img src="../includes/calendar.png" /></button><br />
    <table id="reportTable" name="reportTable">
        <tr>
            <th>&nbsp;</th>
            <th>Time</th>
            <th>Odometer</th>
            <th>Actions</th>
        </tr>
        <tr>
            <TD width="20px">&nbsp;</TD>
            <TD><INPUT type="text" name="time1" id="time1" size="4" /> 
            <script type="text/javascript">
                $(document).ready(function() {
                    $('#time1').timepicker({
                        showPeriod: false,
                        showLeadingZero: false
                    });
                });
            </script>
            </TD>
            <td><input type="text" name="odo1" id="odo1" class="odo" size="6" /></td>
            <td><input type="text" name="report1" id="report1" size="42" value="Dispatched Investigator." readonly="readonly" /></td>
        </TR>
        <tr>
            <TD width="20px">&nbsp;</TD>
            <TD><INPUT type="text" name="time2" id="time2" size="4" /> 
            <script type="text/javascript">
                $(document).ready(function() {
                    $('#time2').timepicker({
                        showPeriod: false,
                        showLeadingZero: false
                    });
                });
            </script>
            </TD>
            <td><input type="text" name="odo2" id="odo2" class="odo" size="6" /></td>
            <td><input type="text" name="report2" id="report2" size="42" value="Investigator arrived at first field location." readonly="readonly" /></td>
        </TR>
    </table>
    <table>
        <tr>
            <TD width="20px">&nbsp;</TD>
            <TD><INPUT type="text" name="time98" id="time98" size="4" /> 
            <script type="text/javascript">
                $(document).ready(function() {
                    $('#time98').timepicker({
                        showPeriod: false,
                        showLeadingZero: false
                    });
                });
            </script>
            </TD>
            <td><input type="text" name="odo98" id="odo98" class="odo" size="6" /></td>
            <td><input type="text" name="report98" id="report98" size="42" value="Investigator departed last field location." readonly="readonly" /></td>
        </TR>
        <tr>
            <TD width="20px">&nbsp;</TD>
            <TD><INPUT type="text" name="time99" id="time99" size="4" /> 
            <script type="text/javascript">
                $(document).ready(function() {
                    $('#time99').timepicker({
                        showPeriod: false,
                        showLeadingZero: false
                    });
                });
            </script>
            </TD>
            <td><input type="text" name="odo99" id="odo99" class="odo" size="6" /></td>
            <td><input type="text" name="report99" id="report99" size="42" value="Investigator suspended." readonly="readonly" /></td>
        </TR>
    </table>
    <br /><button id="addEntry">Add Entry</button>&nbsp;<button id="delEntry">Delete Entry</button>
    <br />
    Service Hours: <input type="text" name="servHrs" id="servHrs" size="4" />
    <input type="hidden" name="id" class="client" value="<? echo $id ?>" />
</form>

在jquery对话框中打开。

我的页面上的其他表单在对话框中打开并正常工作。我已经确认我没有使用任何重复的ID或NAME标记。奇怪的是,有时它会起作用,有时候它不会。

出于安全原因,我不允许向您显示实际页面,因为此系统包含机密客户端信息。

2 个答案:

答案 0 :(得分:1)

是否只在重新加载页面时才会发生?如果是这样,可能是因为Firefox正在记住旧值。如果您在新标签页中打开页面,是否会发生这种情况?

答案 1 :(得分:0)

所以我知道自问这个问题以来它已经很久了。但是因为这里没有有效的答案,并且在将来帮助人们:

浏览器存储已经提到的defaultValue。但是使用导致浏览器根本不缓存的元标记是一个非常糟糕的解决方案。

<强>原因:

这个问题甚至成为一个问题是(在我的情况下)应用程序正在分配一个空的defaultValue,当来自服务器的数据进入时它没有更新它。

<强>解决方案:

避免将{{1>}从清空重新分配到实际值。只需在实际值可用时呈现输入字段。