我不确定为什么我会收到此错误:
connection is not defined
document.getElementById("flashTest").sendValFromHtml(connection.value);
这是我的代码:
function submitCheck() {
var hasConnection = document.getElementById("formTest").connection.value.length != 0;
var hasLocation = document.getElementById("formTest").location.value.length != 0;
document.getElementById("connection").className = hasConnection ? "" : "invalid";
document.getElementById("location").className = hasLocation ? "" : "invalid";
if(hasConnection && hasLocation){
document.getElementById("flashTest").sendValFromHtml(connection.value);
}
}
HTML:
<form id="formTest" name="formTest" method="post" action="">
<fieldset class="form">
<div class="connection">
<label id="connection">Connection:*</label>
<div class="textwrapper">
<select name="connection">
<option value="">Select connection type</option>
<option value="dsl">DSL</option>
<option value="cable">Cable</option>
<option value="fibre">Fibre</option>
</select>
</div>
</div>
<div class="location">
<label id="location">Location*:</label>
<div class="textwrapper">
<select name="location">
<option value="">Select your location</option>
<option value="home">At home</option>
<option value="work">At work</option>
</select>
</div>
</div>
<div class="postcode">
<label>Postcode:</label>
<div class="textwrapper">
<input type="text" name="postcodeVal" id="postcodeVal">
</div>
</div>
<div class="start clear">
<input type="button" name="sendToFlash" id="sendToFlash" value="Start Test" onclick="submitCheck();" />
</div>
</fieldset>
</form>
<embed src="/flash/speedtest.swf" id="flashTest" name="flashTest" width="540" height="320" allowscriptaccess="always" type="application/x-shockwave-flash" flashvars="jsfunc=pushResults&jsfunc2=showExtras" />
答案 0 :(得分:3)
首先,将表单存储为本地变量:
var form = document.getElementById("formTest");
然后使用此局部变量而不是多次查询DOM:
var hasConnection = form.connection.value.length != 0;
var hasLocation = form.location.value.length != 0;
最后,使用connection
前缀form.
:
document.getElementById("flashTest").sendValFromHtml(form.connection.value);
答案 1 :(得分:2)
替换:
var hasConnection = document.getElementById("formTest").connection.value.length != 0;
var hasLocation = document.getElementById("formTest").location.value.length != 0;
使用:
var hasConnection = document.getElementById("connection").value.length != 0;
var hasLocation = document.getElementById("location").value.length != 0;
答案 2 :(得分:1)
将connection.value
更改为:
document.forms.formTest.connection.value