2014-01-17 18 views
0

我有選擇的字段是這樣一種形式:JavaScript表單控制

<select name="consegnaauto1"> .. </select> 
<select name="consegnaauto2"> .. </select> 
<select name="consegnaauto3"> .. </select> 
<select name="consegnaauto4"> .. </select> 

我需要的,如果這個選擇字段中的至少1已經選擇用JavaScript來控制。 我這樣做:

for(i=0; i<13; i++) { 
    if (myForm.consegnaauto[i].value != 0) { 
     k=1; 
     break; 
    } 
} 

但它不運行。你能幫我嗎?

+0

代碼中的哪個位置獲得「myForm」對象的值? – Jason

回答

0

假設myForm會是您的forml對象,你應該在這裏使用此代碼

for(i=1; i<=13; i++) { 
    if (myForm['consegnaauto' + i].value != 0) { 
     k=1; 
     break; 
    } 
} 
0

一個建議:

添加觸發功能的onchange在每個選擇:

<select name="consegnaauto1" onchange="changedSelect()"> .. </select> 
<select name="consegnaauto2" onchange="changedSelect()"> .. </select> 
<select name="consegnaauto3" onchange="changedSelect()"> .. </select> 
<select name="consegnaauto4" onchange="changedSelect()"> .. </select> 

在這個函數中,你增加一個全局變量:

var select_changes = 0; 

function changedSelect(){ 
    select_changes++; 
} 

您的病情,只需驗證如果您的變量> = 1:

if(select_changes >= 1){ 
    //do something 
} 
0

你需要的是一個標誌

var flag=false 
for(i=0; i<13; i++) { 
    if (myForm.consegnaauto[i].value != 0) { 
     k=1; 
     flag=true 
     break; 
    } 
} 
return flag; 
0

類似的想法只是選擇替換複選框:

$(function(){ 

$("#btn").click(function(){ 

    var formVar = document.forms["f"]; 
    var allInputs = formVar["input[]"]; 
    var len = allInputs.length; 
    var anyChecked = false; 

    for (var i = 0; i < len; i++) 
     if (allInputs[i].checked){ 
      anyChecked = true; 
      break; 
     } 

    if (!anyChecked) 
     alert("all checkboxes are empty!"); 

}); 

}); 

工作示例:http://jsfiddle.net/kmWwa/

0

我想你可以使用jQuery這個:

$('form').submit(function() { 
    var $isSelected false; 
    var $dropDownList = $('form :select'); 
    $dropDownList.each(function() { 
     var $select = $(this); 
     if ($select.is(":selected")) { 
      $isSelected = true; 
      break; 
     } 
    }); 
    return $isSelected; 
}); 

變量「$ DROPDOWNLIST」正在與所有形式的選擇元素的填充。當表單被提交時,它會查找是否選擇了一個選擇的項目。如果變量$ isSelected爲false,則不會選擇任何項目,並且表單不會提交。

0

感謝所有,你太棒了,非常快:)

我已經解決了這個問題,這個解決方案:

for(i=1; i<=13; i++) { 
    if (myForm['consegnaauto' + i].value != 0) { 
    k=1; 
    break; 
    } 
    else { 
     alert("Indicare la Località di Riconsegna."); 
    return false; 
    break; 
    } 
} 

簡單有效! 非常感謝!愉快的週末! bye bye