2015-01-02 68 views
-1

我已經在10個簡單的任務steps.On 104在學習JS在JavaScript中,有驗證輸入型文本複選框選擇後的任務。然而,我對如何在複選框被選中後抓取文本字段感到困惑。在檢查複選框是否被選中後,我試圖抓取語法爲formName.TextareafieldName的文本字段。驗證輸入型文本複選框選項後

但是在這本書中,語法其次是form.formName.TextareafieldName。在瀏覽器中輸出時,它顯示只檢查複選框,但不能抓取顯示ERR_FILE_NOT_FOUND的文本文件。我的代碼如下。

<form name="myForm" action="js_form_validation_with_inputcheckbox.html" 
onSubmit="return checkForm(this);"> 
    <input type="checkbox" name="myCheck" value="Checked"> Check Here<br> 
    If checked, enter your name: 
    <input type="text" name="myText"><br> 
    <input type="submit"> 
</form> 

這裏的腳本:

<script> 
function checkList(check) { 
    if (check.checked) { 
    if (myForm.myText.value.length == 0) { 
     window.alert("You have checked the check box;you must provide your name."); 
     return false; 
    } 
    } 
    return true; 
} 

function checkForm(formObj) { 
    return checkList(formObj.myField.value); 
} 
</script> 

我將十分感謝,如果任何人都可以清楚我的困惑。

+0

推廣該問題將爲您提供解決方案的正確方法,例如,您需要文本字段,嘗試在谷歌中搜索,例如「JavaScript查找文本字段」,(搜索結果https://www.google .co.in /?gfe_rd = cr&ei = iIimVKb4FNKGoAOs8oHIBw&gws_rd = ssl#q = javascript + finding + text + fields) – Bharadwaj

+0

你的意思是這樣 - http://jsfiddle.net/n6je4pj5/ – Leron

回答

1

checkForm你逝去formObj.myField.value,但目前還沒有命名MyField的控制。也許你的意思是myCheck

此外,checkList函數似乎想要一個控件,而不是一個值,所以通過控制。

嘗試:

function checkForm(formObj) { 

    // Pass the checkbox control using its name 
    return checkList(formObj.myCheck); 
} 

關於:

> i tried to grab the textfield with syntax as formName.TextareafieldName 

文檔有forms的集合,是一個文檔中的所有形式。成員可以通過索引或其名稱或ID引用。在某些瀏覽器中,ID將會成爲引用表單的全局變量,但使用該功能被認爲是一個壞主意。

可以使用引用的形式:

document.forms.myForm 

document.forms[0] 

假設它是在文檔中的第一個或唯一的形式。同樣,控件可以作爲表單的命名成員訪問,因此:

var form = document.forms[0]; 
var myCheck = form.myCheck; 

形式也有一個elements的集合,是在所有控件(或屬於)的形式,所以你也可以這樣做:

var myCheck = form.elements.myCheck; 

var myCheck = form.elements[0]; 

如果myCheck是形式的第一控制。

0

您可以使用此表爲例子...

<form> 
First name:<br> 
<input name="firstname" id="firstname" type="text"> 
<br> 
    Last name:<br> 
    <input name="lastname" type="text"> 
    </form> 
    <br> 
    <p> 
    <input onchange="checkList(this);return false;" id="change" type="checkbox"> 
    <span id="sp-change"></span></p> 

這裏是腳本代碼...

function checkList(ch) { 
if (ch.checked) { 
var textBox = document.getElementById("firstname"); 
var textLength = textBox.value.length; 
if (textLength == 0) { 
    window.alert("You have checked the check box;you must provide your name."); 
    return false; 
    } else { 
    window.alert("Success"); 
    return true; 
} 
} 
return false; 
} 

我覺得這對你有很大的幫助。

+0

哇,從評論中複製粘貼我的jsfiddle示例作爲答案。 – Leron

+0

甚至沒有解釋爲什麼OP有錯誤或爲什麼此代碼修復它。這也不是特別優雅。 – RobG