2017-07-15 25 views
3

我正在使用語義UI並在其中具有一個帶有輸入字段(搜索字段)的彈出窗口。彈出被初始化/打開「on:'click'」,但我想在用戶打開彈出窗口之前用javascript爲輸入字段設置一個值。語義UI彈出 - 在初始化之前更改HTML

試圖與

document.getElementById("sok_tekst").value = input; 

這樣做只會導致

Uncaught TypeError: Cannot set property 'value' of null

當我看在控制檯中,我看到的HTML代碼中包含與輸入域的彈出(ID = 「sok_tekst」),但它看起來像「無法達到它」與JavaScript的初始化之前。

我覺得我已經嘗試了一切,它看起來像我需要打開彈出之前添加一個值到輸入字段。

這裏是一個DEMO

做任何人有一招了他們對這個套?

謝謝!

對於好奇:我使用輸入字段作爲表/工作計劃中的搜索字段。當表格被重新繪製時,由用戶改變週數,彈出窗口也被重繪。我試圖保留搜索值,並將其放回到輸入字段中,新的彈出窗口中,在新表格中。

回答

3

爲了初始化輸入值,你不應該data-html="..."指定彈出內容,這不會讓改變值導致輸入尚未創建(這就是爲什麼你得到無法設置屬性「價值」空的),所以它應該從一個已存在的HTML內容發生變化,因此改爲使用popup: $('#YourContentSelector'),在彈出的設置來設置的內容,然後,你就可以通過改變輸入值:$('#input_test').val('test');類似如下:

HTML:

<!-- Popup Button --> 
<i class="search link icon sok"></i> 
<!-- Popup Button --> 

<!-- Popup Content --> 
<div class='ui form popup hidden' id="content"><!-- hidden class added so it won't be shown when it's loaded --> 
    <div class='field'> 
     <div class='ui icon input'> 
      <input type='text' placeholder='Input' id='input_test'> 
      <i class='search icon'></i> 
     </div> 
    </div> 
</div> 
<!-- Popup Content --> 

JS(jQuery的)

$(document).on('click', '.search.sok', function() { 
    $('#input_test').val('test'); 
    $(this) 
     .popup({ 
      popup: $('#content'), 
      on:'click' 
     }) 
     .popup('show'); 

}); 

這裏是一個工作Demo

Docs

+0

大家好,感謝您的回答。 雖然這不起作用。當輸入字段在彈出框內時,當彈出窗口打開時,該字段變爲空。如果我誤解了某些內容,可否請更改您的演示,以便輸入字段位於彈出窗口內? 謝謝! –

+0

我已經使用演示編輯了原始帖子,嘗試使用您的解決方案... –

+0

答案和演示已更新。 – Saad

相關問題