-1

我尝试填充几个文本字段以成为这样的东西<a href="check.php?name=john doe&group=metallica">Check</a>

下面是我从这里修改的脚本,但这个脚本只显示在 textarea 内,以及如何在锚链接内显示并生成类似<a href="check.php?name=john doe&group=metallica">Check</a>.

<div id="textBoxContainer">
    <input type="text" id="name" onkeyup="UpdateTextArea();" name="name" />  
    <input type="text" id="group"  onkeyup="UpdateTextArea();" name="group" />  
</div>  
<textarea id="textAreaResult"></textarea>

<a href="check.php?" id="link_check">Check</a>



<script type="text/javascript">
    function UpdateTextArea() {
        var textBoxContainerDiv = document.getElementById("textBoxContainer");
        var textboxes = textBoxContainerDiv.getElementsByTagName("input");
        var finalResult = "";
        var textAreaFinalResult = document.getElementById("textAreaResult");
    
        for (var i = 0; i < textboxes.length; i++) {
            finalResult = finalResult + textboxes[i].id + "=" + textboxes[i].value + "&";
        }
    
        textAreaFinalResult.value = finalResult;
    }
</script>
4

1 回答 1

1

如果你想定位一个锚标签而不是文本区域,那么显然你需要相应地改变它:

<a id="hrefResult" href="check.php">link</a>

然后在您的updateTextArea函数中,您需要定位锚点href而不是文本区域的value. 还有一些其他的优化可以在那里进行,例如制作一个名称/值对的数组,然后join对它们进行 a ,这样你就不会得到尾随&等。

function UpdateTextArea() {
    var textBoxContainerDiv = document.getElementById("textBoxContainer");
    var textboxes = textBoxContainerDiv.getElementsByTagName("input");
    var length = textboxes.length;
    var target = document.getElementById("hrefResult");
    var params = [];
    var baseref = 'check.php';

    for (var i = 0; i < length; i++) {
        params.push(textboxes[i].id + "=" + textboxes[i].value);
    }
    target.href = baseref + '?' + params.join('&');
}

什么鬼,这是整个事情的一个小提琴。

由于不再涉及 textarea ,因此更改函数本身的名称可能是有意义的,但我把它留给你做。

于 2012-10-13T04:42:46.550 回答