设置文本区域的值,并注册一个变化

qquas 发布于 2019-03-09 javascript 最后更新 2019-03-09 14:34 0 浏览

我有一个文本区域:

<input id="startdate" name="startdate" type="text" value="" style="width:23%">
听('变')`
$('#startdate').on('change', function () {
  var $formelem = $(this);
  // DO SOME WORK
  ... 
});
以及更改文本区域值的代码:
var keyval = location.search.replace('?', '').charAt(0);
  var filterDates;
  var clicked = [];
function persistence(keyval) {
    function template(keyval, filterDates) {
      for ( i=0 ; i < keyval.length ; i++ ) {
        $('#'+keyval[i]).click();
      };
      if (filterDates) {
        return $('#startdate').val(filterDates);
      };
    };
    if (typeof parseInt(keyval[0]) === 'number' && keyval[0] % 1 == 0) {
      switch(keyval[0])
        {
        case '1': 
          keyval = ['.', '..', '...' ];
          filterDates = "2006-04";
          template(keyval, filterDates);
          break;
        case '2': 
          keyval = ['.', '..', '...' ]; 
          break;
        default:
          template(keyval);
        };
    } else {
      template(keyval);
    }
  };
当页面加载时,如果url包含1,那么我想将textarea的值更改为2006-04,并让它注册一个更改,以便更改函数发生。目前文本正在更新,但该功能未运行。我认为这可能与页面未被加载有关,所以我将它放在document.ready()中,但它仍然不起作用。还有什么我失踪? API没有提及任何有关将事件处理程序附加到它的任何事情,所以我认为on('change')会诀窍..... 另外,如果我手动修改它,函数确实会完成它应该做的工作,所以它不是函数中的代码。还有,我在别处动态设置初始值的事实与它有什么关系?
$(document).ready(function () {
    blinks(1);
    persistence(keyval);
});
//place the first value of start[] in the startdate box
$('#startdate').val(start[0]);
已邀请:

mnatus

赞同来自:

您可以使用以下命令触发更改:

$('#startdate').trigger('change');