Validera en selectbox

JavaScript

1 svar · 229 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Trådstart#1

Jag hittade ett script som kollar mitt formulär. Det fungerar fint på mina textboxar men nu skulle jag vilja lägga till så att det kollar mina två selectboxar också. Hur göra?

function formCheck(formobj){
	// name of mandatory fields
	var fieldRequired = Array("lista", "platsid", "datum", "tid", "kurslangd");
	// field description to appear in the dialog box
	var fieldDescription = Array("Kursval", "Plats", "Kursstart", "Tid", "Kurslängd");
	// dialog message
	var alertMsg = "Fyll i följande fält:\n\n";

	var l_Msg = alertMsg.length;

	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}
Medlem sedan juni 20004 308 inlägg
#2

Ser rättså ok ut, men du kanske skall använda value istället för text när du validerar listan och sedan låter du value på default-valet vara tomt:

			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].[b][blue]value[/blue][/b] == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;

och listan:

<select name="lista">
<option value="">--Välj en--</option>
<option value="a">Ett val</option>
</select>
265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)