我在为正在创建的表单编写的以下代码时遇到问题:
前两行指定我向用户隐藏一个字段。
我尝试做的下一件事是创建一个函数,如果 StatusGroup 字段设置为 Distance ed,则该函数会将字段设置为特定值。
编写函数后,我希望每次 StatusGroup 更改时都调用它。
最后一行指定我希望在页面首次加载时调用 autoSet()。
关于为什么以下不起作用的任何见解?
$(document).ready(function() {
$('#deliveryinput').css("position", "absolute");
$('#deliveryinput').css("left", "-9999999");
var autoSet = function() {
if($('#StatusGroup').val() == 'Distance Ed') {
$('#DeliveryGroup').val( 'mail' );
$('#NVTGC').val('DIST'); }
else if($('#StatusGroup').val() != 'Distance Ed'){
$('#DeliveryGroup').val( 'pickup' );}
}
$('#StatusGroup').change(function() {
autoSet();
});
autoSet();
});
我认为你们已经掌握了 javascript,但每当我更改 StatusGroup 时,相应的字段都不会响应。我使用的表单标识符是否正确?我将 SelectId 与其值 Distance Ed 进行比较。 DeliveryGroup 和 NVTGC 也是如此。
<label for="StatusGroup">
<span class="field">
span class="<#ERROR name="ERRORStatus">"><b>Status</b></span>
</span>
select id="StatusGroup" name="StatusGroup" size="1" class="f-name" tabindex="4">
<option selected><#PARAM name="StatusGroup"></option>
<option value="Distance Ed">Distance Ed</option>
<option value="Fac/Research">Fac/Research</option>
<option value="Graduate">Graduate</option>
<option value="Undergraduate">Undergraduate</option>
<option value="Staff">Staff</option>
</select><br />
</label>
没关系!明白了,谢谢大家:)
最佳答案
条件应该是 if($("#StatusGroup").val() == 'Distance Ed')
否则您只是比较两个字符串而不是状态组值。
已修复:
if($('#StatusGroup').val() == 'Distance Ed') {
//'DeliveryGroup' = 'mail';
// assumed you were trying to set the value for a field with id DeliveryGroup
$('#DeliveryGroup').val('mail');
$('#NVTGC').val('DIST');
} else if($('#StatusGroup').val() != 'Distance Ed'){
$('#DeliveryGroup').val('pickup');
}
关于javascript - 使用 javascript 创建函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526748/