2016-04-12 4 views
1

Ich kann nicht scheinen, meine Funktion zu funktionieren. Es tut mir sehr leid, wenn das ein sehr einfacher Fehler ist, konnte ich die Antwort nicht finden, und ich beginne gerade erst mit JS.Mit JS, um eine Eingabe nur zum Lesen zu setzen

Also versuche ich es so zu machen, dass, wenn die Bestellung abgeschickt wird, alle Eingaben gesperrt werden (nur lesen). Wie kann ich meinen Code reparieren? Versuchen

<!doctype html> 
<html> 
<head> 
<style> 
a#nav0,a#nav1,a#nav2,a#nav3,a#nav4,a#nav5,a#nav6,a#nav7,a#nav8,a#nav9,a#nav10,a#nav11,a#nav12{color:blue; background-color:white; font-size:30px} 
</style> 
<script> 
function hide() { 
    var x = document.getElementsByTagName("input"); 
    x.readonly = "readonly"; 
} 
</script> 
<title>Garden Gnomes - Order</title> 
</head> 
<body style="background-color:lightblue"> 
<center> 
<a id="nav0"> | </a> <a href="home page.html" id="nav1"> Home </a> <a id="nav2"> | </a> <a href="about.html" id="nav3"> About us </a> <a id="nav4"> | </a> <a href="packages.html" id="nav5"> Packages </a> <a id="nav6"> | </a> <a href="prices.html" id="nav7"> Prices </a> <a id="nav8"> | </a> <a href="associates.html" id="nav9"> Associates </a> <a id="nav10"> | </a> <a href="order.html" id="nav11"> Order </a> <a id="nav12"> | </a> 
</center> 
<center> 
<br>  
<br> 
<form onsubmit="output.value='Submitted'" action="MAILTO:[email protected]?SUBJECT=Gardening order form" method="post" enctype="text/plain"> 
<legend> <font size="5"> Order a Package </font> </legend> 
<br> 
<br> 
Name: 
<input type="text" name="Name"> 
<br> 
<br> 
Package: 
<select name="Package"> 
    <option> Lawn Mowal </option> 
    <option> Property Cleanup </option> 
    <option> Lawn Mowal + Property Cleanup </option> 
    <option> Premium Property Cleanup </option> 
    <option> Premium Property Upgrade </option> 
</select> 
<br> 
<br> 
Quoted Price: $<input type="number" name="Price"> 
<br> 
<br> 
Land (in meters squared): <input type="number" name="Land Size">m<sup>2</sup> 
<br> 
<br> 
Email: <input type="email" name="Email"> 
<br> 
<br> 
Phone Number: <input type="number" name="Phone Number"> 
<br> 
<br> 
Address: <input type="text" name="Address"> 
<br> 
<br> 
<input type="submit" value="Submit order" onclick="hide()"> 
<br> 
<br> 
<output id="output"> </output> 
</form> 
</center> 
</body> 
</html> 
+1

Sie müssen das Skript-Tag zu halten, nachdem die Elemente gerendert werden. vor dem Ende des Body-Tags. –

+1

Und mehr wollen Sie "alle" Eingänge. var X wird zu einem Array. – Aeldred

+0

@Mr_Green Ich werde es versuchen, danke. – qwerty77asdf

Antwort

3

ersetzt
x.readonly = "readonly"; 

mit

x.readOnly = true; 

Beachten Sie, dass O von readOnly Kappen jetzt ist, und Wert ist ein boolean.

getElementsByTagName gibt eine NodeList anstelle eines Knotens zurück. Sie müssen sie iterieren

function hide() 
{ 
    var x = document.getElementsByTagName("input"); 
    for (var counter = 0; counter < x.length; counter++) 
    { 
     x.item(counter).readonly = "readonly"; 
    } 
} 
+0

Ich werde es versuchen, danke. – qwerty77asdf

+0

Leider funktioniert das nicht. – qwerty77asdf

+1

@ qwerty77asdf versuchen Sie diesen vollen Code – gurvinder372

-1

Statt nur lesen versuchen Sie für deaktivieren.

document.getElementById("InputBoxID").disabled = true; 
0

alle Eingangs-Tags Get und Set attribute..working ...

function hide() { 
    var x = document.getElementsByTagName("input"); 
    for (var counter = 0; counter < x.length; counter++) 
    { 
     x[counter].setAttribute("readonly","true"); 
    } 

} 
Verwandte Themen