2016-12-30 26 views
-1

Check the image here比較,如果一個字符串匹配,然後設置VAR的JavaScript一倍

我喜歡那些輸入表,我想輸入字符串到汝來。即我向Nilai輸入字符串「A」,它必須讀爲5.即A = 5,B = 4,C = 3。

上面的圖片SKS是3,Nilai是A,那麼N * S必須是15.那麼它如何讀取A爲5,B爲4,C爲3?

我已經試過它與if語句,但它似乎不起作用或是否有可能在JavaScript中做到這一點。

這裏是我的代碼

<form name="ips"> 
 
<div class="inputan"> 
 
<input type="text" value="SKS" disabled=""> 
 
<input type="text" value="Nilai" disabled=""> 
 
<input type="text" value="N*S" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="sks1"> 
 
<input type="text" name="nilai1"> 
 
<input type="text" name="ns1" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="sks2"> 
 
<input type="text" name="nilai2"> 
 
<input type="text" name="ns2" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="sks3"> 
 
<input type="text" name="nilai3"> 
 
<input type="text" name="ns3" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="sks4"> 
 
<input type="text" name="nilai4"> 
 
<input type="text" name="ns4" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="sks5"> 
 
<input type="text" name="nilai5"> 
 
<input type="text" name="ns5" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="sks6"> 
 
<input type="text" name="nilai6"> 
 
<input type="text" name="ns6" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="totSks" placeholder="Jumlah SKS" disabled=""> 
 
<input type="text" disabled=""> 
 
<input type="text" name="totNilai" placeholder="IPS" disabled=""> 
 
</div> 
 
<input type="button" value="Submit" onClick="hitungIPS()"> 
 
<input type="reset" value="Reset"> 
 
</form>

我的js

function hitungIPS(){ 

    var sks1 = parseFloat(document.ips.sks1.value) || 0; 
    var sks2 = parseFloat(document.ips.sks2.value) || 0; 
    var sks3 = parseFloat(document.ips.sks3.value) || 0; 
    var sks4 = parseFloat(document.ips.sks4.value) || 0; 
    var sks5 = parseFloat(document.ips.sks5.value) || 0; 
    var sks6 = parseFloat(document.ips.sks6.value) || 0; 
    var nilai1 = document.ips.nilai1.value || 0; 
    var nilai2 = document.ips.nilai2.value || 0; 
    var nilai3 = document.ips.nilai3.value || 0; 
    var nilai4 = document.ips.nilai4.value || 0; 
    var nilai5 = document.ips.nilai5.value || 0; 
    var nilai6 = document.ips.nilai6.value || 0; 

    var totalSKS = sks1 + sks2 + sks3 + sks4 + sks5 + sks6; 
     // nilaiSKS adalah N*S 
    var nilaiSKS1 = sks1*n1; 
    var nilaiSKS2 = sks2*nilai2; 
    var nilaiSKS3 = sks3*nilai3; 
    var nilaiSKS4 = sks4*nilai4; 
    var nilaiSKS5 = sks5*nilai5; 
    var nilaiSKS6 = sks6*nilai6; 

    var totalNilai = nilaiSKS1 + nilaiSKS2 + nilaiSKS3 +nilaiSKS4 + nilaiSKS5 + nilaiSKS6; 
    var totIPS = totalNilai/totalSKS; 

    document.ips.totSks.value = totalSKS; 
    document.ips.totNilai.value = totIPS; 

    document.ips.ns1.value = nilaiSKS1; 
    document.ips.ns2.value = nilaiSKS2; 
    document.ips.ns3.value = nilaiSKS3; 
    document.ips.ns4.value = nilaiSKS4; 
    document.ips.ns5.value = nilaiSKS5; 
    document.ips.ns6.value = nilaiSKS6; 

    if (nilai1.match("A") || nilai1.match("a")) { 
     var n1 = '5'; 
     return true; 
    } 

} 
+2

考慮使用['Array'](https://developer.mozilla.org/en-US/docs/Glossary /陣列)。 – royhowie

回答

0
function hitungIPS(){ 

var sks1 = parseFloat(document.ips.sks1.value) || 0; 
var sks2 = parseFloat(document.ips.sks2.value) || 0; 
var sks3 = parseFloat(document.ips.sks3.value) || 0; 
var sks4 = parseFloat(document.ips.sks4.value) || 0; 
var sks5 = parseFloat(document.ips.sks5.value) || 0; 
var sks6 = parseFloat(document.ips.sks6.value) || 0; 
var mappings = { 
    'A': 5, 
    'B': 4, 
    'C': 3 
}; 
var nilai1 = mappings[document.ips.nilai1.value] || 0; 
var nilai2 = mappings[document.ips.nilai1.value] || 0; 
var nilai3 = mappings[document.ips.nilai1.value] || 0; 
var nilai4 = mappings[document.ips.nilai1.value] || 0; 
var nilai5 = mappings[document.ips.nilai1.value] || 0; 
var nilai6 = mappings[document.ips.nilai1.value] || 0; 

var totalSKS = sks1 + sks2 + sks3 + sks4 + sks5 + sks6; 
    // nilaiSKS adalah N*S 
var nilaiSKS1 = sks1*nilai1; 
var nilaiSKS2 = sks2*nilai2; 
var nilaiSKS3 = sks3*nilai3; 
var nilaiSKS4 = sks4*nilai4; 
var nilaiSKS5 = sks5*nilai5; 
var nilaiSKS6 = sks6*nilai6; 

var totalNilai = nilaiSKS1 + nilaiSKS2 + nilaiSKS3 +nilaiSKS4 + nilaiSKS5 + nilaiSKS6; 
var totIPS = totalNilai/totalSKS; 

document.ips.totSks.value = totalSKS; 
document.ips.totNilai.value = totIPS; 

document.ips.ns1.value = nilaiSKS1; 
document.ips.ns2.value = nilaiSKS2; 
document.ips.ns3.value = nilaiSKS3; 
document.ips.ns4.value = nilaiSKS4; 
document.ips.ns5.value = nilaiSKS5; 
document.ips.ns6.value = nilaiSKS6; 
} 

http://codepen.io/mr_nameless/pen/LbwXbO
附: If聲明還就您沒有提供的實際工作需要,如果你已經把它之後var nilai6 = document.ips.nilai1.value || 0;

-1

function hitungIPS(){ 
 
    var mappings = { 
 
     A: 5, 
 
     B: 4, 
 
     C: 3 
 
    }; 
 
    
 
    var sks1 = parseInt(document.getElementsByName("sks1")[0].value) || 0; 
 
    var sks2 = parseInt(document.getElementsByName("sks2")[0].value) || 0; 
 
    var sks3 = parseInt(document.getElementsByName("sks3")[0].value) || 0; 
 
    var sks4 = parseInt(document.getElementsByName("sks4")[0].value) || 0; 
 
    var sks5 = parseInt(document.getElementsByName("sks5")[0].value) || 0; 
 
    var sks6 = parseInt(document.getElementsByName("sks6")[0].value) || 0; 
 
    var nilai1 = parseInt(mappings[document.getElementsByName("nilai1")[0].value.toUpperCase()]) || 0; 
 
    var nilai2 = parseInt(mappings[document.getElementsByName("nilai2")[0].value.toUpperCase()]) || 0; 
 
    var nilai3 = parseInt(mappings[document.getElementsByName("nilai3")[0].value.toUpperCase()]) || 0; 
 
    var nilai4 = parseInt(mappings[document.getElementsByName("nilai4")[0].value.toUpperCase()]) || 0; 
 
    var nilai5 = parseInt(mappings[document.getElementsByName("nilai5")[0].value.toUpperCase()]) || 0; 
 
    var nilai6 = parseInt(mappings[document.getElementsByName("nilai6")[0].value.toUpperCase()]) || 0; 
 
    
 
    
 
    var nilaiSKS1 = sks1*nilai1; 
 
    var nilaiSKS2 = sks2*nilai2; 
 
    var nilaiSKS3 = sks3*nilai3; 
 
    var nilaiSKS4 = sks4*nilai4; 
 
    var nilaiSKS5 = sks5*nilai5; 
 
    var nilaiSKS6 = sks6*nilai6; 
 

 
    var totalSKS = sks1 + sks2 + sks3 + sks4 + sks5 + sks6; 
 
    var totalNilaiSks = nilaiSKS1 + nilaiSKS2 + nilaiSKS3 +nilaiSKS4 + nilaiSKS5 + nilaiSKS6;  
 
    var totalNilai = nilai1 + nilai2 + nilai3 + nilai4 + nilai5 + nilai6;  
 

 
    document.getElementsByName("totSks")[0].value = totalSKS; 
 
    document.getElementsByName("totNilai")[0].value = totalNilai; 
 
    document.getElementsByName("totNilaiSks")[0].value = totalNilaiSks; 
 
    
 
    document.getElementsByName("ns1")[0].value = nilaiSKS1; 
 
    document.getElementsByName("ns2")[0].value = nilaiSKS2; 
 
    document.getElementsByName("ns3")[0].value = nilaiSKS3; 
 
    document.getElementsByName("ns4")[0].value = nilaiSKS4; 
 
    document.getElementsByName("ns5")[0].value = nilaiSKS5; 
 
    document.getElementsByName("ns6")[0].value = nilaiSKS6; 
 
}
<form name="ips"> 
 
<div class="inputan"> 
 
<input type="number" value="SKS" disabled=""> 
 
<input type="text" value="Nilai" disabled=""> 
 
<input type="text" value="N*S" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="number" name="sks1"> 
 
<input type="text" name="nilai1"> 
 
<input type="text" name="ns1" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="number" name="sks2"> 
 
<input type="text" name="nilai2"> 
 
<input type="text" name="ns2" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="number" name="sks3"> 
 
<input type="text" name="nilai3"> 
 
<input type="text" name="ns3" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="number" name="sks4"> 
 
<input type="text" name="nilai4"> 
 
<input type="text" name="ns4" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="number" name="sks5"> 
 
<input type="text" name="nilai5"> 
 
<input type="text" name="ns5" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="number" name="sks6"> 
 
<input type="text" name="nilai6"> 
 
<input type="text" name="ns6" disabled=""> 
 
</div> 
 
<div class="inputan"> 
 
<input type="text" name="totSks" placeholder="Jumlah SKS" disabled=""> 
 
<input type="text" name="totNilai" disabled=""> 
 
<input type="text" name="totNilaiSks" placeholder="IPS" disabled=""> 
 
</div> 
 
<input type="button" value="Submit" onClick="hitungIPS()"> 
 
<input type="reset" value="Reset"> 
 
</form>

+0

代碼轉儲沒有那麼有用。最好添加一個解釋問題是什麼以及你的代碼如何修復它。 – 2016-12-30 04:32:31

0

權。所以,由於缺乏實際情況,我無法正確理解你的問題。但是,我得出結論,你需要一種能夠將A轉換爲5 B到4並將C轉換成3的方法。 爲了讓我有創建了一個簡單的方法,可以解碼你的字符串,我會解釋它,所以如果你需要改變它,那麼你可以。

function DECODE(Str_Message) 
    {  
     SIMBOLOS = "ABC"; 

     Len_Simbolos = SIMBOLOS.length; 
     Len_Str_Message = Str_Message.length; 
     Str_Decoded_Message = "";  
     for (Position = 0; Position < Len_Str_Message; Position++) 
     {      
     Byte_To_Be_Decoded = Str_Message.charAt(Position);  
     Byte_Decoded = 0;   
     for (SecondPosition = 0; SecondPosition < Len_Simbolos;SecondPosition++) 
     {    
      Byte_To_Be_Compared = SIMBOLOS.charAt(SecondPosition); 
      if (Byte_To_Be_Decoded == Byte_To_Be_Compared) 
      {  
       if(Byte_To_Be_Decoded == SIMBOLOS[SecondPosition]) 
       { 
        Byte_Decoded = 5-SecondPosition; 
       } 
       }   
     }   
     Str_Decoded_Message = Str_Decoded_Message+Byte_Decoded;  
     }  
     return Str_Decoded_Message; 
    } 

這裏,這DECODE函數你的字符串逐個字符如果它與SIMBOLOS字符串(這裏是「ABC」)相匹配解碼。在那裏,我已經應用了兩個循環,第一個用於循環存儲相對於其位置的字符,第二個嵌套循環是解碼方法的核心,它將所有SIMBOLOS逐一存儲並將其與給定字符串(例如:'A')進行比較如果SIMBOLOS與字符串匹配,那麼它將應用解碼技術(這裏SIMBOLOS中字符串的位置('A')減去5),然後返回值。

下面是該方法的實際方法:

function DECODE(Str_Message) 
 
{  
 
\t \t SIMBOLOS = "ABC"; 
 
\t \t 
 
\t  Len_Simbolos = SIMBOLOS.length; 
 
\t \t Len_Str_Message = Str_Message.length; 
 
     Str_Decoded_Message = "";  
 
     for (Position = 0; Position < Len_Str_Message; Position++) 
 
\t \t {      
 
      Byte_To_Be_Decoded = Str_Message.charAt(Position);  
 
      Byte_Decoded = 0;   
 
      for (SecondPosition = 0; SecondPosition < Len_Simbolos; SecondPosition++) 
 
\t \t \t {    
 
       Byte_To_Be_Compared = SIMBOLOS.charAt(SecondPosition); 
 
       if (Byte_To_Be_Decoded == Byte_To_Be_Compared) 
 
\t \t \t \t {  
 
\t \t \t \t \t if(Byte_To_Be_Decoded == SIMBOLOS[SecondPosition]) 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t Byte_Decoded = 5-SecondPosition; 
 
\t \t \t \t \t } \t 
 
       \t }   
 
      }   
 
\t \t \t Str_Decoded_Message = Str_Decoded_Message+Byte_Decoded;  
 
     }  
 
     return Str_Decoded_Message; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<html> 
 
\t <head> 
 
\t \t <script> 
 
\t \t \t $(document).ready(function(){ 
 
\t \t \t \t $('#decod').on('click',function(){ 
 
\t \t \t \t \t var valu = $('#deco').val(); 
 
\t \t \t \t \t $("#output").text(DECODE(valu)); 
 
\t \t \t \t }); 
 
\t \t \t }); 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
\t \t <input type="text" id="deco"></input> 
 
\t \t <button id="decod">decode</button> 
 
\t \t <div id="output"></div> 
 
\t </body> 
 
</html>

相關問題