【问题标题】:Input str replace输入 str 替换
【发布时间】:2016-04-20 18:40:20
【问题描述】:

我想用这个m.替换输入这个/

我的输入看起来像:

<input type="text" class="text" name="address1" id="address1" value=""/>

在输入中我写了类似 street_name 5/47 的东西,但在数据库中我想要它像 street_name 5 m。 47

我已经试过了:

var replit = $('input[name=address1]').val().replace("/"," m. ");
$('input[name=address1]').val(replit);

$('input[name=address1]').val(function(index, value) {
     return value.replace('/', ' m. ');
});

但这不是我的工作,我是编程新手,请给我任何提示。

【问题讨论】:

    标签: javascript jquery input replace


    【解决方案1】:

    您可以使用input 事件来跟踪输入字段内的用户更改,然后每次用户更改字段时,事件都会将斜杠/ 替换为m. 的魅力。

    片段

    $('body').on('input', 'input[name=address1]', function() {
      $(this).val($(this).val().replace('/', ' m. '));
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" class="text" name="address1" id="address1" value=""/>

    或者,如果您不希望用户看到您所做的替换,您可以在 submit 事件中提交后替换斜杠:

    $('body').on('submit', 'your_form_selector', function() {
         $(this).val($(this).val.replace('/', ' m. '));
    });
    

    希望这会有所帮助。


    【讨论】:

    【解决方案2】:

    试试

    $('input[name=address1]').val($('#input-field-id').val().replace('/', ' m. '))
    

    【讨论】:

      【解决方案3】:

      使用这个

      $('#address1').on('change',function()
      {  
          $(this).val($(this).val().replace("/"," m. "));
      });
      

      【讨论】:

        【解决方案4】:

        试试这个

        $(document).ready(function(){
            $('input[name=preco]').blur(function(){
                var value = $(this).val();
                $(this).val(value.replace('/','m. '));
            });
        });
        

        【讨论】:

          【解决方案5】:

          这是一个显示您的解决方案有效的小提琴:https://jsfiddle.net/e7n38wjz/2/ 请让我知道这是否是您想要的。你知道你使用的是什么 JQuery 版本吗?此 JSFiddle 设置为使用 JQUERY 1.6.4。

          代码如下:

          <input type="text" class="text" name="address1" id="address1" value="street_name 5/47"/>
          <br>
          <input type="text" class="text" name="address2" id="address1" value=""/>
          
          // JS
          var replit =  $('input[name=address1]').val().replace("/"," m. ");
          $('input[name=address2]').val(replit);
          

          【讨论】:

            【解决方案6】:

            您的两个示例都有效。请参阅此处:https://jsfiddle.net/zreeLzo4/ 和此处:https://jsfiddle.net/q6awd8ng/

            因此,您需要更好地描述“不工作”对您意味着什么。您没想到会发生什么?有什么出乎你意料的事情发生?

            需要注意的一点: 如果您提供字符串作为匹配器而不是正则表达式,则在字符串上使用 replace 只会替换匹配的第一个实例。使用带有全局标志的正则表达式替换所有实例:

            var startString = 'street_name 5/47 something/else';
            var endString = startString.replace(/\//g," m. ");
            console.log(endString); // <- street_name 5 m. 47 something m. else
            

            【讨论】:

              【解决方案7】:

              如果您希望只有数据库中的条目应该使用“m”而不是“/”,那么您应该考虑在将这些数据写入数据库的任何位置更改输入值。您应该考虑通过以下方式使用 .submit() 事件:

              <script>
                  $(document).ready(function(){
                      $("#detailForm").on("submit", function(){
                          var value = $('input[name=address1]').val();
                          value = value.replace("/", " m. ");
                          $('input[name=address1]').val(value);
                      });
                  });
              </script>
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-09-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-02-22
                • 2018-09-07
                相关资源
                最近更新 更多