Javascript 评估未聚焦的元素
我需要评估隐藏输入字段的内容,根据无序列表的内容,谁的值会发生变化。作为参考,此输入字段是单个输入字段2组件的一部分 评估这类字段的问题在于onchange似乎不会激发输入元素,因为该元素不在焦点中。这意味着我有两个可能的方向: 弄清楚如何在元素不在焦点时触发onchange事件; 评估无序列表的内容。 这些选项中的后一个似乎是最合适的,但是它也可能很重并且可能不准确。我应该选择哪种方法 HTML:Javascript 评估未聚焦的元素,javascript,jquery,Javascript,Jquery,我需要评估隐藏输入字段的内容,根据无序列表的内容,谁的值会发生变化。作为参考,此输入字段是单个输入字段2组件的一部分 评估这类字段的问题在于onchange似乎不会激发输入元素,因为该元素不在焦点中。这意味着我有两个可能的方向: 弄清楚如何在元素不在焦点时触发onchange事件; 评估无序列表的内容。 这些选项中的后一个似乎是最合适的,但是它也可能很重并且可能不准确。我应该选择哪种方法 HTML: 此插件具有针对这种情况的事件回调 $("#likesTags").tagit({ //T
此插件具有针对这种情况的事件回调
$("#likesTags").tagit({
//This should be appended to your current tagit initializing call.
afterTagAdded: function() {
onTagsUpdated('#likesTags');
},
afterTagRemoved: function() {
onTagsUpdated('#likesTags');
}
});
function onTagsUpdated(id){
var tags = $(id).tagit("assignedTags"); //Returns an array of the text values of all the tags currently in the widget.
console.log('tags of',id,'updated:',tags);
}
您如何更改likesTags内容?我在您的代码中找不到它。@Bsalex likesTags被标记it包中的某个javascript更改。我包括了一个链接到上面的项目,到包含示例的页面。哪一个是您的案例?我的验证在一个单独的javascript文件中。由于这将在标记中,是否有方法提供validation.js句柄以在触发事件时捕获?或者,我应该将$likesTags.tagit移动到validation.js中,而不是尝试在js文件之间播放吗?您可以将onTagsUpdated函数移动到validation.js中。但是,我认为如果在validation.js中声明一个由onTagsUpdated调用的函数,可能会更干净。我将整个实例化例程移动到validation.js中,在HTML中重新排序脚本调用后,它可以正常工作。非常感谢
<input id="likesTags" name="tags" class="tagit-hidden-field">
<ul class="tagit ui-widget ui-widget-content ui-corner-all">
<li class="tagit-new">
<input class="ui-widget-content ui-autocomplete-input" autocomplete="off" type="text">
<span role="status" aria-live="polite" class="ui-helper-hidden-accessible">1 result is available, use up and down arrow keys to navigate.</span>
</li>
</ul>
$("#likesTags").onchange(function () {
var text = $("#likesTags").val();
if (text.length > 2)
{
pageCompletionSequence += "1";
checkCompletion("#onb5", "#Dislikes", "11");
}
else
{
pageCompletionSequence = "1";
elementRestore("#onb5");
}
})
function checkCompletion(id, np, seq) {
if (pageCompletionSequence == seq) {
$(id).removeClass("hiddenLink");
$(id).parent().attr("href", np);
pageCompletionSequence = "1";
}
}
function elementRestore(id) {
$(id).addClass("hiddenLink");
$(id).parent().removeAttr("href");
}
$("#likesTags").tagit({
//This should be appended to your current tagit initializing call.
afterTagAdded: function() {
onTagsUpdated('#likesTags');
},
afterTagRemoved: function() {
onTagsUpdated('#likesTags');
}
});
function onTagsUpdated(id){
var tags = $(id).tagit("assignedTags"); //Returns an array of the text values of all the tags currently in the widget.
console.log('tags of',id,'updated:',tags);
}