これを行うためのより簡潔な方法はありますか?
// exclude all HTML 4 except text and password, but include HTML 5 except search
var inputSelector = "textarea,input[type='text'],input[type='password'],input[type='color']," +
"input[type='date'],input[type='datetime'],input[type='datetime-local']," +
"input[type='email'],input[type='month'],input[type='number'],input[type='range']," +
"input[type='tel'],input[type='time'],input[type='url'],input[type='week']";
注:このセレクターは.delegate()関数で使用されるため、.Not()関数は使用できません。また、セレクターに将来の入力タイプ(HTML 6>)をデフォルトで含めることができれば最高です。
答え:
これが私が今持っているものです。以前よりもはるかに優れています。もっと洗練できるなら教えてください。
// exclude all HTML 4 except text and password, but include HTML 5 except search
var inputSelector = "textarea,input:not([type='checkbox'],[type='radio'],[type='button']," +
"[type='image'],[type='submit'],[type='reset'],[type='file'],[type='search'])";
inputとtextareaも含まれていることに注意してください。これは、HTML仕様への将来の追加がデフォルトで含まれることを意味します(これが可能だとは思わなかった人にとって)。