2016-06-09 135 views
0

更新值我有一個隱藏的輸入字段這樣的:陣營將不會觸發onChange事件,當我經過的document.getElementById

<input type="hidden" value="0" id="selected-committee" 
    onChange={this.setSelectedSchool.bind(this)} /> 

我想火的setSelectedSchool功能時,該輸入的變化。我更改像這樣的子組件中該元素的值:

document.getElementById('selected-committee').value = id; 

這會成功更改值,但不會觸發該函數。我怎樣才能解決這個問題?

+0

如果您正在使用React,爲什麼要手動獲取元素並對其進行更新。您可以將值作爲子元素中的道具傳遞。 – Rajesh

+0

@Rajesh是的我可以但問題是,我正在使用名爲'Griddle'的插件來加載我的表。子組件由該插件加載,我無法將道具傳遞給我的子組件。 – THpubs

+0

[以編程方式操作DOM元素值的可能重複不會觸發onchange事件](http://stackoverflow.com/questions/2842266/programmatically-manipulating-dom-element-value-doesnt-fire-onchange-event)。我認爲這回答你的問題。不知道反應的最佳解決方案是什麼。 –

回答

1

也許觸發一個明確的輸入事件。

var element = document.getElementById('selected-committee'); 
element.value = id; 
var event = new Event('input', { bubbles: true }); 
element.dispatchEvent(event);