2017-08-01 88 views
0

我有一個付款表單,用戶將在其中輸入金額在輸入文本字段中。我有另一個相同形式的文本字段,其中用戶給出的金額的字數將被自動寫入。但我有問題,我如何提取字段的值,並將其傳遞給將轉換值的函數。請幫幫我。 這是用戶將要輸入的字段。如何在不提交表格的情況下獲得輸入字段值

<div class="control-group form-group" style="padding-left:20px; padding-right: 20px;"> 
         <div class="controls"> 
          <label>Amount</label> 
          <input type="email" class="form-control" name="amount" id="amount" placeholder="Please enter amount"required/> 
         </div> 
        </div> 

我有這個字段,價格應該自動寫入。我嘗試過很多方法,但都失敗了。

<div class="control-group form-group" style="padding-left:20px; padding-right: 20px;"> 
         <div class="controls"> 
          <label>Amount in words</label> 
          <input type="email" class="form-control" name="amountInWords" id="amountInWords" placeholder="Amount in words" value="<?php echo ?>"> 
         </div> 
        </div> 
+1

我們至少需要一些代碼。你有什麼嘗試? – William

+1

分享你的代碼? – kunal

+0

回答

0

更新試試這個

function convertNumberToWords(amount) { 
 
    var words = new Array(); 
 
    words[0] = ''; 
 
    words[1] = 'One'; 
 
    words[2] = 'Two'; 
 
    words[3] = 'Three'; 
 
    words[4] = 'Four'; 
 
    words[5] = 'Five'; 
 
    words[6] = 'Six'; 
 
    words[7] = 'Seven'; 
 
    words[8] = 'Eight'; 
 
    words[9] = 'Nine'; 
 
    words[10] = 'Ten'; 
 
    words[11] = 'Eleven'; 
 
    words[12] = 'Twelve'; 
 
    words[13] = 'Thirteen'; 
 
    words[14] = 'Fourteen'; 
 
    words[15] = 'Fifteen'; 
 
    words[16] = 'Sixteen'; 
 
    words[17] = 'Seventeen'; 
 
    words[18] = 'Eighteen'; 
 
    words[19] = 'Nineteen'; 
 
    words[20] = 'Twenty'; 
 
    words[30] = 'Thirty'; 
 
    words[40] = 'Forty'; 
 
    words[50] = 'Fifty'; 
 
    words[60] = 'Sixty'; 
 
    words[70] = 'Seventy'; 
 
    words[80] = 'Eighty'; 
 
    words[90] = 'Ninety'; 
 
    amount = amount.toString(); 
 
    var atemp = amount.split("."); 
 
    var number = atemp[0].split(",").join(""); 
 
    var n_length = number.length; 
 
    var words_string = ""; 
 
    if (n_length <= 9) { 
 
     var n_array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0); 
 
     var received_n_array = new Array(); 
 
     for (var i = 0; i < n_length; i++) { 
 
      received_n_array[i] = number.substr(i, 1); 
 
     } 
 
     for (var i = 9 - n_length, j = 0; i < 9; i++, j++) { 
 
      n_array[i] = received_n_array[j]; 
 
     } 
 
     for (var i = 0, j = 1; i < 9; i++, j++) { 
 
      if (i == 0 || i == 2 || i == 4 || i == 7) { 
 
       if (n_array[i] == 1) { 
 
        n_array[j] = 10 + parseInt(n_array[j]); 
 
        n_array[i] = 0; 
 
       } 
 
      } 
 
     } 
 
     value = ""; 
 
     for (var i = 0; i < 9; i++) { 
 
      if (i == 0 || i == 2 || i == 4 || i == 7) { 
 
       value = n_array[i] * 10; 
 
      } else { 
 
       value = n_array[i]; 
 
      } 
 
      if (value != 0) { 
 
       words_string += words[value] + " "; 
 
      } 
 
      if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) { 
 
       words_string += "Crores "; 
 
      } 
 
      if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) { 
 
       words_string += "Lakhs "; 
 
      } 
 
      if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) { 
 
       words_string += "Thousand "; 
 
      } 
 
      if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) { 
 
       words_string += "Hundred and "; 
 
      } else if (i == 6 && value != 0) { 
 
       words_string += "Hundred "; 
 
      } 
 
     } 
 
     words_string = words_string.split(" ").join(" "); 
 
    } 
 
    return words_string; 
 
}
<div class="control-group form-group" style="padding-left:20px; padding-right: 20px;"> 
 
         <div class="controls"> 
 
          <label>Amount</label> 
 
          <input type="email" class="form-control" name="amountInWords" id="amountInWords" placeholder="Amount in words" onkeyup="amount.innerHTML=convertNumberToWords(this.value)"> 
 
         </div> 
 
        </div> 
 
        
 
<div id="amount"></div>

你的問題似乎的盲區,顯示你的示例代碼,總之你可以通過jQuery的做到這一點,

了jQuery獲得該領域的價值:

var ExtractedValue = $('#YourFieldID').val(); 

使用前必須包含jquery庫。

+0

但是我怎麼把這個值傳遞給函數來轉換值。我也嘗試過,但失敗了。 –

+0

@NidaAkram嘗試更新的答案。 –

0

使用此插件轉換值到量:http://www.jqueryscript.net/text/jQuery-Plugin-To-Convert-Numbers-Into-Words-num2words.html

下面是這個插件的示例代碼。

$(document).ready(function() { 
 
    $('#num').focus(); 
 
    $('#demo').num2words(); 
 
}); 
 
$('#demo').num2words({ 
 
    units: [ "", "One", "Two", "Three", "Four", "Five", "Six","Seven", "Eight", "Nine", "Ten" ], 
 
    teens: [ "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen","Sixteen", "Seventeen", "Eighteen", "Nineteen", "Twenty" ], 
 
    tens: [ "", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty","Seventy", "Eighty", "Ninety" ], 
 
    othersIntl: [ "Thousand", "Million", "Billion", "Trillion" ] 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> 
 
<script src="https://www.jqueryscript.net/demo/jQuery-Plugin-To-Convert-Numbers-Into-Words-num2words/jquery.num2words.js"></script> 
 

 
<div id="demo"> 
 
    Enter amount: $ <input id="num" type="text"> 
 
    <input id="trans" type="button" value="Convert to words"> 
 
    <div></div> 
 
</div>

希望這個答案對你有幫助。

相關問題