2016-03-21 58 views
3

在提交此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

什么是生成html? – ssilas777

+1

我将生成的HTML添加到了我的帖子中。 –

回答

1

简单地得到降的选择指数下跌,如果零,则没有价值选择

if($("#cd").prop('selectedIndex') === 0) { 
    alert(...); 
} 

OR

if($("#cd")[0].selectedIndex === 0) { 
    alert(...); 
} 

相关文章:


OR

你可以选择的选项的值,如果是空的,然后选择一个值警报。

if($("#cd").val() === "") { 
    alert(...); 
} 

相关文章:

+0

如果您正在检查空字符串,您可能需要对值进行修剪。 – DinoMyte

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; 
} 

例子:https://jsfiddle.net/8p3ftmuh/3/