この HTML (スニペット) を考えると:
<input type="text" name="sch_alert" value="foo@bar.co.uk" size="40"
maxlength="45" onchange="return valString(this.form.sch_alert, 0, 45, 'Invalid entry
for this field')" title="" id="idsch_alert"
placeholder="Your email address"><input type="text" name="sch_sms" value="44788xxxxxxx"
size="20" maxlength="14" title="" id="idsch_sms" placeholder="Your mobile number"><br>
<label class="companyform" for="idsch_all">All Campaigns?</label>
<select name="sch_all" title="Select Yes to extract/alert for replies on all
campaigns, otherwise select No and select specific campaigns below." id="idsch_all">
<option value="Y">Yes</option>
<option value="N">No</option>
</select>
次の JavaScript が機能します。
new Opentip($('idsch_alert'), 'Email to receive reply data alert', 'Alert email', {style: 'myStyle'});
new Opentip($('idsch_sms'), 'Mobile phone number', 'Alert mobile', {style: 'myStyle'});
しかし、これはしません:
new Opentip($('idsch_all'), 'Extract all data?', 'Extract', {style: 'myStyle'});
最後に、opentip-prototype.js からエラーが発生します。
if (this.triggerElement.length > 1) {
throw new Error("You can't call Opentip on multiple elements.");
}
問題は、要素の長さがオプションの数によるものであると推測しています。これは、各オプションに一意の ID を割り当ててから、それらのそれぞれに Opentip を作成できるためです (ただし、配置エラーがありますが、これはおそらく修正できます)。別のターゲットを割り当てる)。
opentip-prototype.js v2.4.6 (opentip.org) を使用しています