在提交此JSP时,应要求用户选择“请选择”之外的其他内容。如果用户选择“请选择”并提交表单,则应通过弹出窗口提醒用户他们应该更改字段。
<td class="normalTD" nowrap class="alignLeft" width="16%">
<form:select class="requiredAttr" path="detail[${loop.index}].cd" cssClass="fotnStyle" id="cd" >
<form:option value="">Please Select</form:option>
<c:forEach var="list" items="${override.list}">
<c:choose>
<c:when test="${override.listne null}">
<c:choose>
<c:when test="${list.listCd eq detail.cd}">
<c:set var="selectStatus" value="SELECTED" />
</c:when>
<c:otherwise>
<c:set var="selectStatus" value="" />
</c:otherwise>
</c:choose>
</c:when>
</c:choose>
<option value="${list.listCd}" ${selectStatus}>
<c:out value="${list.desc}" />
</option>
</c:forEach>
</form:select>
</td>
我使用了以下jQuery代码段,它可以正常警告用户文本框未填充,但不会影响下拉列表。
function validate(){
$(".requiredAttr").each(function(){
if($(this).val().length < 1 || $(this).val() == ""){
alert("Please fill in all the required fields.");
$(this).focus();
return false;
}else{
return true;
}
});
return false;
}
这是生成的HTML。
<td class="normalTD" nowrap class="alignLeft" width="16%">
<select id="cd" name="detail[0].cd" class="fotnStyle" class="requiredAttr">
<option value="">Please Select</option>
<option value="1" >A</option>
<option value="2" >B</option>
<option value="3" >C</option>
<option value="4" >D</option>
</select>
</td>
答案 0 :(得分:1)
只需获取选定的下拉索引,如果为零,则不选择任何值
if($("#cd").prop('selectedIndex') === 0) {
alert(...);
}
OR
if($("#cd")[0].selectedIndex === 0) {
alert(...);
}
相关帖子:
OR
你可以获得所选选项的值,如果它是空的,则提示选择一个值。
if($("#cd").val() === "") {
alert(...);
}
相关帖子:
答案 1 :(得分:1)
您的逻辑是正确的,但您不需要值的长度。对值等于空的简单检查可以完成这项工作。
function validate()
{
$(".requiredAttr").each(function(){
if($.trim($(this).val()) == ""){
alert("Please fill in all the required fields.");
$(this).focus();
return false;
}else{
return true;
}
});
return false;
}