2016-09-01 58 views
0

我有一个XML文件的日期正在传递到我的网页。我正在使用<body onload>来调用JavaScript函数,该函数将在我的表单上填充日期输入字段。我有格式为yyyy-MM-dd的日期1950-07-26但我得到错误The specified value "1917" does not conform to the required format, "yyyy-MM-dd".日期格式被错误解释

它从哪里得到1917?

我的XML是:

<VFILE_DATA> 
    <CASE> 
     <TF15> 
     1950-07-26 
     </TF15> 
    </CASE> 
</VFILE_DATA> 

片段的我HTML/JavaScript是:

<body onload="load();"> 
     <script> 
     function load() 
     { 
      window.alert("<xsl:value-of select="VFILE_DATA/CASE/TF15"/>"); 
      var dateTF15 = <xsl:value-of select="VFILE_DATA/CASE/TF15"/>; 
      document.getElementById('[email protected]_TF15').value=dateTF15;  

     } 
     </script> 
     <div class="field f_25" id="field26-container"> 
      <label for="[email protected]_TF15"> 
       Client 1 DOB 
      </label> 
      <input name="[email protected]_TF15" id="[email protected]_TF15" required="required" type="date"/>       

     </div> 
    </body> 

我的警报显示1950年7月26日,这是谷歌浏览器。不知道我出错的地方!

我看:

Date is interpreted as being in a different format

Date incorrectly interpreted in my string

但也有帮助。

如果我直接将输入字段的value分配到相同的日期,它工作正常。

+0

我知道的很少关于Javascript,但显然你的字符串正在被评估为算术表达式:'1950 - 7 - 26 = 1917'。你不需要明确地施放它吗? –

+0

啊,这是完全明显!其中一件事,我一直在看它太长,看不到简单的事情...... – KT79

+1

'var dateTF15 ='';'将修复它 - 可能是 –

回答

1

你需要

var dateTF15 = '<xsl:value-of select="VFILE_DATA/CASE/TF15"/>'; 
      ^           ^

使dateTF15一个字符串,否则,所产生的代码看起来像

var dateTF15 = 1950-07-26; 

这是1917年

与报价,最终的代码

var dateTF15 = '1950-07-26'; 
+0

完美,谢谢! – KT79