麻烦传递和处理从HTML表单到外部JS的数据

时间:2015-03-03 13:57:12

标签: javascript html html5 forms onclick

我无法将数据从HTML传递到JS脚本,每当我点击提交没有任何反应时,目的是让用户在表单中输入日期然后发送到javascript脚本并且将日期与当前日期进行比较,然后计算出两者之间的天数/周数差异,然后返回到HTML页面,这是我到目前为止所拥有的;

HTML代码

<script src="DandT.js">
<input type="date" name="dd/mm/yyyy"`id="uniqueID" value="datetime" />
<button type="button" onclick="proccessFormData()">Submit</button>

JS代码

function processFormData(){

    var frm_element = document.getElementById('uniqueID');
    var current = new date();
    var timeDiff = frm_element.getTime() - current.getTime();

    var seconds = Math.floor(timeDiff / 1000);
    var minutes = Math.floor(seconds / 60);
    var hours = Math.floor(minutes / 60);
    var days = Math.floor(hours / 24);
    var weeks = Math.floor(days / 7);

    return weeks * days;
}

提前感谢您的回复

2 个答案:

答案 0 :(得分:0)

HTML

<input type="date" name="dd/mm/yyyy" id="uniqueID" value="datetime" />
<button type="button" class="submit">Submit</button>
<script src="DandT.js">

JS

  function processFormData(){
    var inputDate = document.querySelector('#uniqueID');
    var timeDiff = inputDate.getTime() - Date.now();

    var seconds = ~~(timeDiff / 1000);
    var minutes = ~~(seconds / 60);
    var hours = ~~(minutes / 60);
    var days = ~~(hours / 24);
    var weeks = ~~(days / 7);

    return weeks * days; // this only RETURNS the data, this won't actually trigger a form submit.
  }

  document.querySelector('.submit').addEventListener(processFormData);

如果您不想使用新数据触发表单提交,那么您应该手动执行AJAX调用或将计算值注入隐藏的input并触发表单提交({{1} })。

答案 1 :(得分:0)

最终结果是让它运转我必须使用

var usrDate = new Date(uniqueID.value);

感谢所有有用的建议!