2015-11-04 71 views
-3
<!DOCTYPE html> 
<html> 
<head> 
    <title>Onreset</title> 
</head> 
<body> 
    <form> 
     Username: 
     <input type="text" class="abc"><br><br> 
     Password: 
     <input type="password" class="def"><br><br> 
     <input type="button" onclick="myfun()" value="clear"> 
    </form> 
    <script> 
     function myfun() 
     { 
      var a = document.getElementsByClassName('abc').value; 
      a.value = ""; 
      var b = document.getElementsByClassName('def').value; 
      b.value = ""; 
     } 
    </script> 
</body> 

</html> 

我已清除上述帶有重置功能的窗體。這是分開的,但我需要僅使用類名來清除上面的表單...我在上面的代碼中犯的錯誤在哪裏?請幫幫我!爲什麼我無法使用Javascript中的類清除表格

+0

'VAR一個=文件。 getElementsByClassName('abc')' –

+3

reset()方法有什麼問題? – soorapadman

+1

我的問題是我可以在j.s中使用類嗎?我知道我們可以......但我在某處找到難度 –

回答

1

有了這個代碼,它不事關,用相同的類名的元素數量就搞定了。

<script> 
    function myfun() 
    { 
     var a = document.getElementsByClassName('abc'); 

     for (var i = 0; i < a.length; i++) { 
      a[i].value = ""; 
     } 

     var b = document.getElementsByClassName('def'); 

     for (var i = 0; i < b.length; i++) { 
      b[i].value = ""; 
     } 
    } 
</script> 

Working DEMO

如果你將有隻有一個相同的類名元素,然後在這裏是沒有循環的代碼:

<script> 
    function myfun() 
    { 
     var a = document.getElementsByClassName('abc'); 
     a[0].value = ""; 

     var b = document.getElementsByClassName('def'); 
     b[0].value = ""; 
    } 
</script> 

WORKING DEMO

+0

先生!我們可以運行這個代碼而不需要for循環! –

+0

當然。你確定,你將只有一個具有相同類名的元素嗎? – Legionar

+0

先生!我嘗試過沒有循環但不工作先生 –

3

document.getElementsByClassName返回一個列表。如果您確定只有一個該類名的元素,只需從該列表中獲取第一個元素即可。

var a = document.getElementsByClassName("abc")[0]; 
+2

它的工作只有用戶名!... –

+0

爲你的另一個你需要做的。 'var b = document.getElementsByClassName('def')[0]' – Dreagen

+1

但它不工作sir –

0

如果你有abcdef類名只有一個元素,你可以做到以下幾點:

function myfun() 
{ 
    document.getElementsByClassName('abc')[0].value = ''; 
    document.getElementsByClassName('def')[0].value = ''; 
} 

Code in Plunker

如果要重置所有字段的值,可以使用以下內容:

<input type="reset" value="clear"> 
+1

這是好的,如果每個類只有一個元素。 – Vithozor

+0

@Vithozor在這個問題中,每個類只有一個元素 –

+0

是的,我知道並且問題中的表單不包含同一類的多個元素。 – Nayan

0

document.getElementsByClassName(「ABC」)返回匹配的類的對象(陣列),因此可能需要指定你指的是在該對象的類(陣列)

的位置嘗試這種情況:

function myFunction() 
    { 
     var a = document.getElementsByClassName('abc')[0]; 
     a.value = ""; 
     var b = document.getElementsByClassName('def')[0]; 
     b.value = ""; 
    } 

Working Demo

+0

對不起,先生!這是行不通的 –

+0

檢查演示在這裏 - https://fiddle.jshell.net/jncf4fqn/ – Santhosh

相關問題