webForumDet fria alternativet

location.href vid form submit

3 svar · 1 000 visningar · startad av prplxr

prplxrMedlem sedan juni 2012557 inlägg
#1

Buäh, tidigt fortfarande, grus i ögonen. Jag sitter fast! :-D

Har en form som fungerar som "sökbox". Där skall gå att söka på företag, kartor och webben. Om man ska söka på kartor vill jag att formen INTE ska submittas när man klickar submit, däremot ska besökaren skickas vidare till en annan sida.

Detta får jag verkligen inte snurr på. Detta är koden jag har nu:

<html>
	<head>
		<script type="text/javascript">
			var searchtype = 'companies';
			function setSearchtype(val) {
				pSel = document.getElementById('sel_'+searchtype);
				cSel = document.getElementById('sel_'+val);
				cST = document.getElementById('search_type');
				cSF = document.getElementById('search_from');
				cSW = document.getElementById('what');
				searchtype = val;
				pSel.style.fontWeight = 100;
				cSel.style.fontWeight = 700;
				pSel.style.color = '#b4b4b4';
				cSel.style.color = '#40aefb';
				cST.value = val;
				cSF.style.display = val == 'www' ? 'none' : 'block';
				cSW.placeholder = val == 'www' ? 'Fritt sök...' : 'Företag, bransch, adress...';
			};
			function check_search() {
				if(searchtype == 'maps') {
					location.href='map.php';
					return false;
				} else {
					return true;
				};
			};
		</script>
	</head>
	<body>
		<form method="get" action="rslt.php" id="searchForm" onsubmit="return check_search();">
			
			<div id="header_menu" style="margin-bottom: 10px;">
				<a href="javascript:setSearchtype('companies');" style="color: #40aefb; font-weight: bold;" id="sel_companies">FÖRETAG</a>
				|
				<a href="javascript:setSearchtype('maps');" style="color: #b4b4b4;" id="sel_maps">KARTOR</a>
				|
				<a href="javascript:setSearchtype('www');" style="color: #b4b4b4;" id="sel_www">WEBBEN</a>
			</div>
			
			<div style="font-family: Verdana, Geneva, sans-serif; text-align: left; font-size: 11px; border-top: 1px solid #40aefb; border-bottom: 1px solid #40aefb; border-right: 1px solid #40aefb; border-left: 5px solid #40aefb; width: 550px;">
					
				&nbsp;<br />
				<em>&emsp;Vad söker du?</em><br />
				<input type="text" name="what" id="what" style="margin-left: 10px; margin-top: 5px; width: 517px; font-size: 16px; font-family: Verdana, Geneva, sans-serif;" placeholder="Företag, bransch, adress..." /><br />
				&nbsp;<br />
				<div id="search_from">
					<em>&emsp;Varifrån vill du ha resultat?</em><br />
					<input type="text" name="where" id="where" style="margin-left: 10px; margin-top: 5px; width: 517px; font-size: 16px; font-family: Verdana, Geneva, sans-serif;" placeholder="Ort, kommun, län..." /><br />
					&nbsp;<br />
				</div>
				&nbsp;
				<div class="result_links">| <a href="javascript:void(0);" onclick="document.getElementById('searchForm').submit();" class="result_link">SÖK</a> |&emsp;<input type="submit" style="display: none;" /></div>
			</div>
						
			<input type="hidden" name="search_type" id="search_type" value="companies" />
				
		</form>
	</body>

Jag vet att koden är litet rörig, men det stämmer överens med hur jag känner mig i huvudet just nu, hehe. Någon som har orken att titta igenom detta och se vad som kan vara fel?

Nu när jag faktiskt läser min kod igen så inser jag att man inte kan göra en redirect FÖRST och sedan skicka "return false;". Inte heller kan man göra tvärt om. Vad göra?

voigtann1Medlem sedan juni 20018 810 inlägg
#2

det gör lite ont att se att du inte sätter var på dina variabler, men grund och botten är det inte action du vill byta i ditt sökfält bara? för jag gissar att ändå vill skicka med formulär datan?

prplxrMedlem sedan juni 2012557 inlägg
#3

voigtann1 skrev:

det gör lite ont att se att du inte sätter var på dina variabler,

Som sagt, grus i ögonen. Jag gjorde det på första och glömde totalt bort det på de andra. Jag gör det generellt sett när jag är vaken.

voigtann1 skrev:

men grund och botten är det inte action du vill byta i ditt sökfält bara? för jag gissar att ändå vill skicka med formulär datan?

Egentligen så har det ju ingen betydelse, men det är ju en väg att gå. Ska kika på det!

prplxrMedlem sedan juni 2012557 inlägg
#4

Okej, jag tog bort "onsubmit" och ändrade mitt javascript till detta:

<script type="text/javascript">
	var searchtype = 'companies';
	function setSearchtype(val) {
		var pSel = document.getElementById('sel_'+searchtype);
		var cSel = document.getElementById('sel_'+val);
		var cST = document.getElementById('search_type');
		var cSF = document.getElementById('search_from');
		var sForm = document.getElementById('searchForm');
		var cSW = document.getElementById('what');
		searchtype = val;
		pSel.style.fontWeight = 100;
		cSel.style.fontWeight = 700;
		pSel.style.color = '#b4b4b4';
		cSel.style.color = '#40aefb';
		cST.value = val;
		cSF.style.display = val == 'www' ? 'none' : 'block';
		cSW.placeholder = val == 'www' ? 'Fritt sök...' : 'Företag, bransch, adress...';
		switch(searchtype) {
			case 'companies':
				sForm.action = 'rslt.php';
				break;
			case 'maps':
				sForm.action = 'map.php';
				break;
			case 'www':
				sForm.action = 'webrslt.php';
				break
		};
	};
</script>

Fungerar superbt! Tack för tipset, voigtann1! :-)

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb