javascript - document.write Javascript 函数

标签 javascript html

这是我的代码:

<script LANGUAGE="Javascript">
        function choiceReturn(obj) {
            switch(obj.value) {
                case "1":
                    document.write("<input value='Fund (L###)' type='text' 
                    class='button3' onfocus='if(this.value == "Fund (L###)"){this.value = '';}' 
                    onblur="if(this.value == ''){this.value = 'Fund (L###)'}">");

            }
        }
        </script>

<select name="funds_menu" onchange="choiceReturn(this);">
            <option selected>Choose 1 to 3</option>
            <option value="1">1. Choose fund</option>
            <option value="2">2. Prepare data</option>
            <option value="3">3. Perform valuation</option>
            </select>

我的意图:从列表中选择第一项后,会出现基金 (L###) 输入框。我还有一些 onblur 和 onfocus 的小代码,以使它更酷一些。

但是,什么也没有发生。我究竟做错了什么?那里有很多引号。也许这就是困惑的原因。

最佳答案

JavaScript 中不存在多行字符串。您必须将它们单独连接起来。此外,某些嵌套的嵌套字符串未正确转义。

固定代码:

document.write("<input value='Fund (L###)' type='text' " +
    "class='button3' onfocus='if(this.value == \"Fund (L###)\"){this.value = \"\";}' " + 
    "onblur='if(this.value == \"\"){this.value = \"Fund (L###)\"}'>");

但是,document.write 通常是一个坏主意™,并且通过 document.createElementelement.setAttribute 等方法进行 DOM 操作(或直接使用 JS DOM API 设置它们),element.addEventListenerelement.appendChild 几乎总是更好的方法。

这是重写为不使用 document.write 的代码:

var inputElement = document.createElement('input');
inputElement.value = 'Fund (L###)';
inputElement.type = 'text';
inputElement.className = 'button3';
inputElement.addEventListener('focus', function() {
    if (this.value == "Fund (L###)") {
        this.value = "";
    }
});
inputElement.addEventListener('blur', function() {
    if (this.value == "") {
        this.value = "Fund (L###)"
    }
});
document.getElementById('someElement').appendChild(inputElement);

另请注意,您尝试执行的操作已存在:placeholder="Fund (L###)" .

关于javascript - document.write Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24616362/

相关文章:

javascript - 如何使用 javascript 写入 "on form submit complete"?

javascript - 不要更改不接受的文件上的输入文件文本

javascript - jQuery 滚动时折叠

javascript - 我有一个范围 slider ,我想在其中控制值的变化。如果 slider 值大于 0.. 说美好的一天

javascript - 处理程序中的变量未被重新分配

javascript - 如何在没有第三个对象垫片的情况下进行继承?

javascript - 滚动到页面顶部时如何隐藏按钮?

css - 当我将鼠标悬停在工具提示上时看到在 html 中编写的脚本

html - 将 css 菜单定位到右上角

javascript - 使用 jquery 将 ID 分配给动态生成的元素