2017-07-15 26 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

相关问题