2014-02-18 23 views
0

我试图将输入的值存储到变量中。现在,我只想将输入值粘贴到span元素中,以便我知道它的工作原理。但是我不能在我的JSFIDDLE中工作。有什么建议么?需要将输入值存储到变量上

HTML:

<label>Advertising Budget:</label> 
       <input id="advertising" onchange="updateAdvertising(this.value)"> </input> 
<span id="test">xxx</span> 

的Javascript:

function updateAdvertising(adv){ 
    document.getElementById('test').innerText = adv; 
} 

的jsfiddle:http://jsfiddle.net/6J4MN/

+0

改变的选择下拉的执行时间,以“没有包装 - 在” [小提琴](http://jsfiddle.net/6J4MN/1/) – Bic

+0

@Bic到底是什么这样做?它有效,但我只想知道它在做什么,所以我可以实现它。 –

+1

您已将它设置为onLoad,这意味着您的方法在页面加载完成并且onclick已被绑定之后才会定义。当页面加载时,onclick方法不存在,因此没有任何限制。如果您将其包装在头部,则内容将在页面呈现之前加载,确保该方法在绑定时存在。 – Bic

回答

3

innerHTML的是更兼容,也改变fiddle头代替的onload

这里是一个整洁解决方案

Live Demo

window.onload=function() { 
    document.getElementById("advertising").onchange=function(){ 
    document.getElementById('test').innerHTML = this.value; 
    } 
} 

由于平变化需要一个模糊触发,用onkeyup立即改变:

Live Demo

window.onload=function() { 
    document.getElementById("advertising").onkeyup=function(){ 
    document.getElementById('test').innerHTML = this.value; 
    } 
} 
1

注意 “的OnChange” 事件的文本框中会火一旦你输入或离开文本框。如果您将事件更改为键控,则会在您键入每个字母后更新该范围。

<script type='text/javascript'>//<![CDATA[ 
    window.onload=function(){ 

    function addEvent(element, evnt, funct){ 
     if (element.attachEvent) 
     return element.attachEvent('on'+evnt, funct); 
     else 
     return element.addEventListener(evnt, funct, false); 
    }; 

    addEvent(document.getElementById('advertising') 
     , 'change' 
     , function() { updateAdvertising(this.value); } 
    ); 

    var updateAdvertising = function(adv){ 
     document.getElementById('test').innerText = adv; 
    }; 
}; 
</script>