6

次の問題に直面しました。jQuery+ajaxを使用しており、サーバーからデータを取得した後にスピナーの最大値と最小値を設定したいと考えています。しかし、実際の状況では、firebugで要素をチェックすると、最大値と最小値が設定されているが、実際には設定されていないため、最大値と最小値はありません。ここにいくつかのコードがあります:

...
<input type="number" id ="spinId" name="someName" step="0.5" />
...
$("#spinId").attr('min', 0.0);
$("#spinId").attr('max', parseFloat($('.someClass').text()));
...

この.someClassはajaxを介して形成されます。また、値が適切に設定されている、つまり正常に機能していることに気付きました$('#spinId').attr('value',ValueFromServer);。だから私はそれを修正するために何をすべきですか?

4

2 に答える 2

6

minmax値は、スピナーの作成時に設定されます。それらをオンザフライで変更するには、次を使用します。

// given a 'data' object from AJAX with keys 'min' and 'max':
$('#spinId').spinner('option', 'min', data.min);
$('#spinId').spinner('option', 'max', data.max);

また、この.attr()関数はDOM要素の属性を取得および設定するためにのみ使用できることにも注意してください。たとえば、これを使用して、要素id<div>またはを取得または設定できます。ほとんどのjQueryプラグインは、JavaScript変数で構成を保持します。構成をDOMにアタッチする場合は、を使用します。href<a>.data()

于 2012-08-07T10:21:33.533 に答える
6

デフォルトに影響を与えることなく、さまざまなスピナーに直接オプションを設定することもできます。実例は次のとおりです:http://jsfiddle.net/7xj7K/4/

// give two different inputs different options without changing jquery spinner defaults
$("#spinId").spinner({min: 0, max: 10});
$("#spinId_two").spinner({min: -3, max: 53});

jsfiddleでわかるように、jQueryスピナーには、入力の右側にあるボタンをクリックしているときに最小/最大値を適用する際にいくつかの問題があります。値は最小/最大値を超える可能性がありますが、ユーザーがフィールドからぼかしたときに検証されます。キーボードの上/下矢印を使用する場合、検証は問題なく機能するため、プラグインの作成者には改善の余地があるようです。

于 2012-08-07T10:29:12.340 に答える