Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应该在文本框上使用哪个事件来调用javascript函数?_Javascript_Html - Fatal编程技术网

应该在文本框上使用哪个事件来调用javascript函数?

应该在文本框上使用哪个事件来调用javascript函数?,javascript,html,Javascript,Html,我有两个文本框来存储两个日期。我想在第一个和第二个文本框中输入日期时调用javascript函数。也就是说,只要我在第二个框中输入日期,我就想调用javascript函数。我尝试了onchange,但它没有调用javascript函数。您能建议我调用javascript函数的正确事件吗?提前谢谢。我用的是smarty。我的代码如下: <label>Created Date From</label> <div class="form-eleme

我有两个文本框来存储两个日期。我想在第一个和第二个文本框中输入日期时调用javascript函数。也就是说,只要我在第二个框中输入日期,我就想调用javascript函数。我尝试了onchange,但它没有调用javascript函数。您能建议我调用javascript函数的正确事件吗?提前谢谢。我用的是smarty。我的代码如下:

<label>Created Date From</label>
            <div class="form-element">
              <input type="text" class="cal fl-left" name="from_date" id="frmDate" value="{if $data.from_date}{$data.from_date}{else}{/if}" maxlength="10" />
            </div>
<label>Created Date To</label>
              <div class="form-element">
                <input type="text" class="cal fl-left" name="to_date" id="toDate" value="{if $to_date}{$to_date}{else}{/if}" maxlength="10" onchange="get_tests_by_date(); return false;"/>
              </div>
function get_tests_by_date() {
    document.location.href = "view_tests.php?test_category_id="+document.getElementById('test_category_id').value+"&test_mode="+document.getElementById('test_mode').value+"&test_type="+document.getElementById('test_type').value+"&package_type="+document.getElementById('package_type').value+"&created_date_from="+document.getElementById('frmDate').value+"&created_date_to="+document.getElementById('toDate').value+"&page=1";
  }

这就是我几年前所做的,代码中没有jquery:

HTML:

JS:


您可以按一下键,然后检查该框是否包含您允许的日期字符数。确保忽略backspace键。onchange应该可以工作。你能发布不起作用的代码,并告诉我们你尝试了哪些浏览器吗?@JoAreBy:根据你的请求,我已经添加了代码。我看不出有任何理由不调用get\u tests\u by\u date。您是否尝试过用alerttest替换该函数体;?onchange为更改文本框内容的每个按键触发。为每个新按键重新加载可能不是您想要的。在重新加载之前,您可以添加一个检查来查看日期是否已完成。为什么不直接使用jquery,不是更简单吗?只要标记中没有提到jquery,就应该用本机javascript回答问题。@Hello World确实如此!但正如Jo所说,它不在标记中,所以作者正在寻找纯jscript。。。
<input name="FormStartDate" value="" maxlength="10" onkeydown="KeyDateNumCheck()"/>
<input name="FormEndDate" value="" maxlength="10" onkeydown="KeyDateNumCheck()"/>
//do not allow to input anything except the numeric characters, dashes, or slashes
function KeyDateNumCheck()
{
  var iKeyCode = event.keyCode;
  if ( (iKeyCode != 109) && (iKeyCode != 189) && (iKeyCode != 111) && (iKeyCode != 191) &&
    ( ((iKeyCode > 57)&&(iKeyCode < 96)) || (iKeyCode > 105) || (iKeyCode == 32)) )
    event.returnValue = false;
}