如何选择功能?

时间:2013-07-13 02:07:02

标签: javascript function

我正在尝试实现一个

的功能
  1. 如果我按non2,请在text2
  2. 中打印textarea2
  3. 如果我按pos2,则在text2打印textarea1
  4. 此处我想要的是当我按pos2然后将text2 textarea1打印,而text2中的textarea2将被删除。相反,如果我先点击pos2然后点击non2,则只在text2中打印textarea2

    我正在考虑使用if-else语句来查看是否点击了POS或NON之一。这就是我最终的结果:

    <?php
        for ($j = 1; $j <= 3; $j++) {  
            echo '
                <div id="part'. $j .'" >
                    <div id="teks'.$j.'">TEXT 2 </div>
                    <input type="radio" id="pos'. $j .'" name="teks'.$j.'" value="POS" onclick="addPOS(this.previousElementSibling.innerHTML);">POS2</input>
                    <input type="radio" id="non'. $j .'" name="teks'.$j.'" value="NON" onclick="addNON(this.previousElementSibling.previousElementSibling.innerHTML);">NON2</input>
                    <input type="radio" id="neg'. $j .'" name="teks'.$j.'" value="NEG" checked="checked" onclick="delPOS(document.getElementById(\'teks'.$j.'\').innerHTML); delNON(document.getElementById(\'teks'.$j.'\').innerHTML);">NEG2</input>
                </div>
            ';
        }
    ?>   
    <script type="text/javascript">
        function delPOS(elem)
        {
            var txt = document.getElementById("posbox").value;
            if (txt.length>elem.length){
                document.getElementById("posbox").value = txt.substr(0,txt.length-elem.length-1);
            }else{
                document.getElementById("posbox").value="";
            }
        }
        function delNON(elem)
        {
            var txt = document.getElementById("nonbox").value;
            if (txt.length>elem.length){
                document.getElementById("nonbox").value = txt.substr(0,txt.length-elem.length-1);
            }else{
                document.getElementById("nonbox").value="";
            }
        }
        function delNEG(elem)
        {
            var txt = document.getElementById("negbox").value;
            if (txt.length>elem.length){
                document.getElementById("negbox").value = txt.substr(0,txt.length-elem.length-1);
            }else{
                document.getElementById("negbox").value="";
            }
        }
    
        function addPOS(elem)
        {
            document.getElementById("posbox").value+=elem;
        }
        function addNON(elem)
        {
            document.getElementById("nonbox").value+=elem;
        }
        function addNEG(elem)
        {
            document.getElementById("negbox").value+=elem;
        }
    </script>
    <div id="box" >
        <textarea style="width:420px" name="posbox" id="posbox" rows="4" cols="70"></textarea>
        <textarea style="width:420px" name="nonbox" id="nonbox" rows="4" cols="70"></textarea>
        <textarea style="width:420px" name="negbox" id="negbox" rows="4" cols="70"></textarea>
    </div>
    

    然而,这不起作用。我做错了什么,我该如何解决?

2 个答案:

答案 0 :(得分:0)

让它变得更简单。假设无线电“名称”与您从中获取内容的divs id相同:

...
<div id="teks'.$j.'">TEXT 2 </div>
<input type="radio" id="pos'. $j .'" name="teks'.$j.'" value="POS" 
   onclick="addPOS(this);">POS2</input>
<input type="radio" id="non'. $j .'" name="teks'.$j.'" value="NON" 
   onclick="addNON(this);">NON2</input>
...
你可以这样做:

function addPOS(elem)
{
    document.getElementById("posbox").value+=document.getElementById(elem.name).innerHTML;
}

答案 1 :(得分:0)

你这太复杂了,你所要做的就是创造一个功能,例如Print() 在你定义的地方看起来像这样:

function Print(what,textareaobj)
{ 
  textareaobj.value=what
}

然后在你正在调用的文件中有一个变量集 例如

var what = "The text";

并为按钮添加属性onclick =“Print(what,getElementById('idoftextarea')”例如:

<button onclick="Print(what,getElementById('idoftextarea')">Click</button>