我可以将变量textarea id传递给JavaScript函数吗?

时间:2014-01-20 18:43:09

标签: javascript function variables

我遇到了这个出色的解决方案的后续问题: 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使用相同的函数。这可能吗?

1 个答案:

答案 0 :(得分:0)

请在此处查看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>