document.ElementID('id')。innerHTML =只闪烁一次然后就消失了

时间:2013-08-15 06:57:57

标签: javascript json parsing

我正在写一小段代码。基本上我正在采用自定义形成的字符串并将其转换为json。它的工作原理,但我写到它的部分只是在页面上闪烁并且消失了。当我把document.getElementId .....放在函数调用之外时,它表示未定义。关于如何打击这个的任何想法?

Input like:
    pizzas@size:"large";toppings:sausage
<form name="form1" onsubmit="getString()">
    <input type="text" name="txtJob" id="txtJob" value="">
    <input type="submit" value="Submit">
</form>
<p id="myJson"></p>
<script>
    var myString, w, tableName, x;
    function getString(){
        myString = document.getElementById("txtJob").value;
        w = myString.split("@");
        tableName = w[0];
        alert(tableName);
        x = w[1].split(";");
        myLength = x.length-1;
        document.getElementById("myJson").innerHTML=
        '<h1>'+ tableName + '</h1>';
    }

</script>

提前致谢。

1 个答案:

答案 0 :(得分:1)

它正在消失,因为一旦表单提交,它就会重新加载页面。解决方案是来自return false处理程序的onsubmit。这可以防止发生默认操作(提交)。如,

<form name="form1" onsubmit="getString();return false;">
    <input type="text" name="txtJob" id="txtJob" value="pizzas@size:&quot;large&quot;;toppings:sausage">
    <input type="submit" value="Submit">
</form>
<p id="myJson"></p>
<script>
    var myString, w, tableName, x;
    function getString(){
        myString = document.getElementById("txtJob").value;
        w = myString.split("@");
        tableName = w[0];
        alert(tableName);
        x = w[1].split(";");
        myLength = x.length-1;
        document.getElementById("myJson").innerHTML=
        '<h1>'+ tableName + '</h1>';

    }

</script>

fiddle