【问题标题】:Javascript focus() method not working with Google Apps ScriptJavascript focus() 方法不适用于 Google Apps 脚本
【发布时间】:2013-06-11 08:55:15
【问题描述】:

我已经尝试在我的 Google Apps 脚本项目中通过各种方式使用 focus() 方法。我尝试使用这两种方法:

$("#elementID").focus();

还有

document.getElementById("elementID").focus();

但两者都不起作用。我错过了什么还是 Caja 正在对其进行消毒?另外,如果后者为真,是否有任何解决方法?

【问题讨论】:

  • 好的,这有帮助。但实际上我使用 focus() 来处理 字段的 onchange() 事件。所以,可以说是用户输入事件。那么为什么它在这种情况下不起作用呢?

标签: javascript dom google-apps-script


【解决方案1】:

我用 HtmlService 构建了一个页面,它工作正常。 检查此代码:

应用脚本

function doGet() {
  return HtmlService.createTemplateFromFile("pag").evaluate();
}

HTML 模板

<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<form >
<select id="selectCombo" onchange="setFocus(this)" >   
<option value="1" >A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>     
<input type="text" class="focusField" id="myField" />
</form>   
<script>
function setFocus(obj) {   
  document.getElementById('myField').select();      
}
</script>

</html>

应用脚本网址Here

【讨论】:

  • 您的应用脚本链接无效。用 onclick() 触发 focus() 对我来说也很好。但我需要用 onchange() 事件来触发它。
【解决方案2】:

我遇到了类似的问题,为了解决它我使用了这个方法:

JS:

function selectChange(elt)
{
  elt.changed = true;
  // ...
}
function selectClick(elt)
{
  if (elt.changed) {
    elt.changed = false;
    document.getElementById('myTarget').focus();
  }
}

HTML:

<select id="mySelect" onChange="selectChange(this);" onClick="selectClick(this);"></select>
<input id="myTarget" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2019-12-24
    相关资源
    最近更新 更多