2011-01-04 3 views
1

無効な入力要素でtitle属性をエミュレートする必要があるかどうかを検出するために、フィーチャ検出を使用する方法を教えてください。フィーチャ検出firefox quirk with title属性が無効な要素に表示されない

私は、&が仕様どおりに動作するようにFirefoxの主張が分かっていることを知っていますが、表示するツールチップはあまり表示されません。

私が考えることのできる唯一のことは、ブラウザの検出を直接使用することです。

問題の例は、jQueryのが許容される使用ここhttp://jsfiddle.net/Raynos/xQyBR/

var con = $("#Con"); 

var b1 = $("<input>").attr({ 
    "id": "b1", 
    "title": "Some Other Text", 
    "type": "button", 
    "value": "b1" 
}).appendTo(con); 

con.append($("<br>")); 

var b2 = $("<input>").attr({ 
    "id": "b2", 
    "title": "Some text", 
    "type": "button", 
    "value": "b2", 
    "disabled": true 
}).appendTo(con); 


var detected = $("input:disabled[title]"); 
console.log(detected); 

を見ることができます。

+0

input.disabled

の使用を中断されません。私は、あなたがフィールドが無効であることを(何らかの情報を提供するだけでなく)ツールヒントに何らかの形で示すことを提案します。 – Pointy

+0

ツールチップの目的は、入力が無効であることを言うことです。たとえば、「データリストに何も選択していないため、このボタンは無効になっています」、「必要な権限がありませんので、必要に応じて連絡してください」 – Raynos

答えて

1

まあ、この機能の検出はありません(afaik)。しかし、透明なdivオーバーレイでこの問題を回避することができます。

例:プラグインとhttp://jsfiddle.net/xQyBR/19/

例:http://jsfiddle.net/xQyBR/24/

その方法、それはとにかくクロスブラウザの互換性だろう。

+0

それを有効にしてクリックしようとすると、ボタンが有効になるたびにdivを破棄、移動、または非表示にすることを覚えているのは、本当に良い解決策ではありません。 – Raynos

+0

@Raynos:このテクニックを使うには、あなた自身のために自分自身で書かれたプラグイン '.enable()'と '.disabled()'を使うべきです。 – jAndy

+0

@Raynos:codezを追加しました:P – jAndy

0

タイトルをエミュレートするより良い解決策は、CSSだけを使用することです。 :after:hoverの組み合わせは、あなたがその場でツールチップを作成することができますし、私は、ユーザーが無効入力にツールチップを参照することは少し奇妙かもしれないと考えてhttp://jsfiddle.net/Raynos/cgYgR/

関連する問題