我正在使用Semantic-UI并在其中有一个带有输入字段的弹出窗口(搜索字段)。弹出窗口已初始化/打开" on:'点击'",但我想在用户打开弹出窗口之前使用javascript为输入字段设置一个值。
尝试使用
document.getElementById("sok_tekst").value = input;
只会导致
未捕获的TypeError:无法设置属性' value'为null
当我查看控制台时,我发现HTML代码包含带有输入字段的弹出窗口(id =" sok_tekst"),但它看起来像我"可以'达到它"用javascript进行初始化。
我觉得我已经尝试了所有内容,看起来我需要在向输入字段添加值之前打开弹出窗口。
这是DEMO
有没有人为此做过伎俩?
谢谢!
对于好奇:我使用输入字段作为表/工作计划中的搜索字段。重绘表时,通过用户更改周数,弹出窗口也会重新绘制。我试图保留搜索值,并将其放回输入字段,新弹出窗口中的新表中。
答案 0 :(得分:2)
为了初始化输入值,您不应该使用data-html="..."
指定弹出内容,这不会让值更改因为尚未创建输入(这就是为什么你& #39; re getting无法设置属性' of null),因此应该从预先存在的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