【问题标题】:input type text onfocus function not calling输入类型文本 onfocus 函数未调用
【发布时间】:2013-11-18 08:30:04
【问题描述】:

我有一个表格,其中每个 td 元素都将包含一个输入类型文本。

<tr>
    <td id="a1"><input type="text" id="a1t"/></td>
    <td id="a2"><input type="text" id="a2t"/></td>
</tr>
<tr>
    <td id="b1"><input type="text" id="b1t"/></td>
    <td id="b2"><input type="text" id="b2t"/></td>
</tr>

当文本输入被聚焦时,我需要知道 td id。我尝试通过调用带有附加到输入类型文本的 onfocus 事件的 js 函数来做到这一点,但该函数没有被调用。

<input type="text" id="b2t" onfocus="cell_clicked('b2t')" />

这是函数和fiddle

function cell_clicked(cell_no){
    alert(cell_no);
}

但是该函数没有被调用。 我做错什么了吗?

【问题讨论】:

  • 向我们展示您的cell_clicked()
  • 你能为此分享一个 jsFiddle 吗?
  • 稍等片刻就能搞定jsfiddle
  • 看到这个fiddle或者这个fiddle
  • 工作正常jsFiddle

标签: javascript input onfocus


【解决方案1】:

您的代码工作正常,您在 jsfiddle 中设置错误。
Framework and extensions 下将onLoad 更改为no wrap 以使您的函数cell_clicked 全局可用。

看到这个http://jsfiddle.net/ywt8V/3/(你的小提琴http://jsfiddle.net/ywt8V/只是这个设置被改变了)。

作为旁注,您可以像这样访问父表格单元格的 id:

onfocus="cell_clicked(this.parentNode.id)"

希望对你有帮助

【讨论】:

  • 但我如何让它在我的应用程序中工作。你的答案解决了 jsfiddle 但应用程序仍然无法工作。
  • 然后.. 使用 jsfiddle 中的正确设置,提供一个新的小提琴,其中包含您的实时代码。您当前提供的代码(在您的问题和小提琴中)已被证明可以在此线程中的多个小提琴中工作。
  • 代码在 jsfiddle 中用于更改设置。但在我的应用程序中,相同的代码不起作用。事实上,我从我的页面源代码中复制粘贴了代码。
  • 然后给我们看那个代码,没有别的办法。。一定是其他的(可能是其他有错误的代码)有问题。
  • 把它全部搞定..你的“旁注”服务于我的最终目的..!! :) 谢谢你的时间..!!
【解决方案2】:
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<td><div id="boom" class="selected"><input type="text" id="b2t" onfocus="cell_clicked(this.id)" /></div></td>



function cell_clicked(id){
    var foo = $( "#"+id ).parent(".selected").attr( "id" );
    alert(foo);
}

【讨论】:

  • 由于结构是动态创建的,因此无法添加输入文本选择器
猜你喜欢
  • 1970-01-01
  • 2013-06-27
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 2016-03-03
  • 1970-01-01
相关资源
最近更新 更多