document.write Javascript函数

时间:2014-07-07 17:27:48

标签: 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,以使它更酷。

然而,没有任何反应。我究竟做错了什么?那里有很多引号。也许这就是搞乱这个的原因。

1 个答案:

答案 0 :(得分:2)

多行字符串不是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设置它们),{{1} }和element.addEventListener几乎总是一种更好的方法。

以下是重写为不使用element.appendChild的代码:

document.write

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