これは、何らかの理由で、jQuery UI Selectmenu-buttonがfocus()イベントとblur()イベントの両方で混乱するため、トリガしません。これらのイベントをトリガする方法はありますか?selectmenu() - 代入で関数を使用する必要はありませんか?jQuery - ui-selectmenu-button blur() - イベント
理由私は、入力、テキストエリアなどのフォーカスやぼかしイベントに使用される全体的な機能を持っていることをお伺いします。これはselectmenuでも使用できることがうれしいですが、ぼかしとフォーカスを受け入れると、少し難しくなります。
$('input,textarea,select').on('blur focus',function(event) {
var $this = $(this),
thisID = $this.attr('id'),
thisType = $this.attr('type'),
thisContent = $this.val(),
thisForm = $this.parents('form').attr('id'),
isRequired = $this.attr('required'),
getMessage = '',
elementPosition = $this.position(),
elementWidth = $this.width(),
elementHeight = $this.height(),
checkmarkPosition = (elementPosition != undefined) ? elementPosition.left + (elementWidth-10) : '',
topPosition = (elementPosition != undefined) ? Math.floor(elementPosition.top) : '';
if ($(this).hasClass('required')) {
thisContent = $this.text();
}
if (event.type == 'blur') {
if (isRequired == 'required' && (thisContent == '' || thisContent == 'Can\'t be empty')) {
getMessage = 'requiredField';
} else if (thisType == 'email') {
if (validateEmail(thisContent) == false) {
getMessage = 'notValidEmail';
} else {
getMessage = 'checkMark';
}
} else {
getMessage = 'checkMark';
}
}
if (getMessage != '' && getMessage != undefined) {
$.post('/returnmessages.php', {getmessage:getMessage}, function(data) {
data = $.parseJSON(data),
message = data.returnmessage,
infoState = data.infostate;
if (infoState != '' && infoState != undefined && thisType != 'submit') {
if (infoState == 'success') {
$this.addClass(infoState).after('<span style="position: absolute; left: '+(checkmarkPosition)+'px; top: '+(topPosition+10)+'px;" class="fa fa-check"></span>');
} else if (infoState == 'error' && (thisContent == '' || thisContent == undefined)) {
$this.addClass(infoState).prop('placeholder',message).next('span').remove();
}
}
})
}
})
通常の入力ではなく、selectmenu要素に関する定期的なイベントのために正常に動作します:
現在、私は次のコードを持っています。これは要素自体に "ok"(チェックマーク)と異なるエラーメッセージなどを返す関数であるため、別々の要素にエラーメッセージを添付する必要はありません。
誰でもこの作品を作成する方法について考えていますか?
便利願っています使用することができます。選択ボックス(カスタムボタン/矢印付き)のCSSをやり直して、新しいHTML/CSSに合わせてJavaScriptのビット全体をやり直してください。 – junkfoodjunkie