如何选择并运行此函数onload?

时间:2018-02-12 16:17:15

标签: javascript jquery magento str-replace onload

所以我在我的脚本中有这个工作代码块来替换逗号","中的小数分隔符。进入期间"。" ,编辑表格时。因为在这个区域中十进制分隔符逗号是正常的我还希望值显示为1,99€所以我还原了工作函数。所选字段应在加载时更改。当表单提交后,我会再次将其重新组合。在本例中,我只展示了其中一个字段。

值=" 1.5"以错误的方式从Magento-Backend加载,这是另一个故事:

我加入onload:"function(event)"window.onload = function();显示我尝试从jQuery添加此功能的两个尝试:jQuery('form').on('change', '#price', function(event)我还需要知道如何删除.on('更改'部分。首次使用Js和jQuery。我真的尝试了一切。

 <html>
  <body onload="function(event)">
   <form>
    <input id="price" value="1.5">
   </form>
  </body>
 </html>

<script>

window.onload = function();

jQuery('form').on('change', '#price', function(event) {
   event.preventDefault();
   if (jQuery('#price').val().includes('.'))  {

    var varwithpoint = jQuery('#price').val();
    varwithcomma = varwithcomma.replace(",",".");

    jQuery('#price').val(varwithpoint);
} 
 else {
    console.log('no dot to replace');
}

});
</script>

2 个答案:

答案 0 :(得分:1)

代码的一些部分似乎没有按预期工作,因此下面是将“,”转换为“。”的代码的基本示例。如果存储在输入“price”中,并在每次更改值后检查;

 
function convert_price(){
  var this_price = $("#price").val();
  if (this_price.includes(',')) {      
    this_price = this_price.replace(",",".");
    $('#price').val(this_price);
  } else {
    console.dir('no dot to replace');
  }
}
convert_price();

$("#price").on("change",convert_price);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<html>
  <body>
   <form>
    <input id="price" value="1,5">
   </form>
  </body>
 </html>

答案 1 :(得分:0)

我将“{”命名为将change事件附加到输入文件的函数,我还更改了传递给on函数的参数

function init(){

   var input = jQuery('#price');
   input.on('change', function(event) {
     event.preventDefault();
     var valueInInput = input.val();
     if (valueInInput.includes('.')) {
        var varwithcomma = valueInInput.replace(",",".");
        input.val(varwithcomma);
     } else {
        console.log('no dot to replace');
     }
   });
}
<html>
  <head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  </head>
  <body onload="init()">
   <form>
    <input id="price" value="1.5">
   </form>
  </body>
 </html>