Próbuję sprawdzić, czy dane wejściowe formularza mają jakąkolwiek wartość (nie ma znaczenia, jaka jest wartość), aby można było dodać wartość do adresu URL działania w przypadku przesłania, jeśli nie istnieć. Muszę dodać nazwę parametru przed dodaniem wartości, a pozostawienie pustej nazwy parametru, takiej jak "P =" bez żadnej wartości, spowoduje przeniesienie strony.Jak sprawdzić, czy dane wejściowe formularza mają wartość
Oto mój kod:
function getParam() {
// reset url in case there were any previous params inputted
document.form.action = 'http://www.domain.com'
if (document.getElementById('p').value == 1) {
document.form.action += 'P=' + document.getElementById('p').value;
}
if (document.getElementbyId('q').value == 1) {
document.form.action += 'Q=' + document.getElementById('q').value;
}
}
i forma:
<form name="form" id="form" method="post" action="">
<input type="text" id="p" value="">
<input type="text" id="q" value="">
<input type="submit" value="Update" onClick="getParam();">
</form>
myślałem ustawiania wartości == 1 zrobi proste istnieje, nie istnieje kontrolę niezależnie od złożonego wartości było, ale myślę, że się mylę.
Używam również instrukcji if, ale uważam, że to zły kod, ponieważ nie mam innego. Być może, używając instrukcji switch, chociaż nie jestem pewien, jak to ustawić. Może:
switch(value) {
case document.getElementById('p').value == 1 :
document.form.action += 'P=' + document.getElementById('p').value; :
case document.getElementById('q').value == 1 :
document.form.action += 'Q=' + document.getElementById('q').value; break;
}
Nie będzie złożenie niczego, jeśli pola wejściowe nie mają nazwy. – kennebec
prawda, ale w tym przypadku formularz jest tylko po to, aby zaktualizować adres URL, a ponieważ przechwytywam wartości tych danych wejściowych według id, to naprawdę nie jest konieczne. – Choy
Zdajesz sobie sprawę, że możesz zmienić swoją metodę na 'GET', a wartości zostaną dodane do kwerendy? Powinieneś być w stanie obsługiwać puste wartości po stronie serwera bez problemów; co masz na myśli * zbija z góry stronę *? – RedFilter