【问题标题】:Can I pass a variable textarea id to a JavaScript function?我可以将变量 textarea id 传递给 JavaScript 函数吗?
【发布时间】:2014-01-21 03:15:24
【问题描述】:

我遇到了这个出色解决方案的后续问题: Select checkbox when clicking in textarea (JavaScript?).

我需要将解决方案应用于同一表单中的多个文本框。是否有可能以任何方式将代码更改为这样的内容(不起作用):

<html>
<body>
<textarea id="iamtextarea" rows="4" cols="10" onfocus="onFocusTextArea('iamtextarea');" onblur="onBlurTextArea('iamtextarea');">Enter some text in textbox</textarea>
<input type="checkbox" name="iamcheckbox"  id="iamcheckbox" checked="checked"> I am checkbox<br>
<input type="hidden" name="hiddenString" id="hiddenString" value="Enter some text in textbox">
</body>
</html>

<script type="text/javascript">

function onFocusTextArea(variableName) { 
  document.getElementById("iamcheckbox").checked = false;
}
function onBlurTextArea(variableName) {
  if(document.getElementById(variableName).value==document.getElementById("hiddenString").value) {
    document.getElementById("iamcheckbox").checked = true;
  }
}
</script>

我想要做的是将 textarea 的变量 id 传递给 javascript 函数,这样我就可以对多个 textarea 使用相同的函数。这可能吗?

【问题讨论】:

  • 为什么不给不同的文本区域分配不同的 ID 并通过 DOM 引用它们呢? document.getElementById('yourTextAreaID).value ? (编辑,然后将 id 传递给您的函数..?)
  • 是的,这是可能的,而且您所拥有的看起来是正确的。至少它对我“有效”:jsfiddle.net/4n3ux。究竟什么对你“不起作用”?
  • 不是每个文本区域都需要一个函数吗?
  • 我的错。由于习惯于编写 PHP,我将 $ 放在 JavaScript 中的变量中。出于某种原因,我在这里发布代码时并没有犯那个错误,所以我花了一段时间才弄清楚出了什么问题。

标签: javascript function variables


【解决方案1】:

在此处查看jsfiddle。这需要一个元素和一个 checkboxid

function onFocusTextArea(checkboxId) {
    document.getElementById(checkboxId).checked = false;
}

function onBlurTextArea(element, checkboxId) {
    if (element.value === "") {
        document.getElementById(checkboxId).checked = true;
    }
}

一些示例 HTML

<textarea id="iamtextareaone" onfocus="onFocusTextArea('checkboxone');" onblur="onBlurTextArea(this, 'checkboxone');"></textarea>
<textarea id="iamtextareatwo" onfocus="onFocusTextArea('checkboxtwo');" onblur="onBlurTextArea(this, 'checkboxtwo');"></textarea>

<input type="checkbox" id="checkboxone" checked="checked">Checkbox One<br>
<input type="checkbox" id="checkboxtwo" checked="checked">Checkbox Two<br>

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多