javascript - 生成文本取决于另一个文本框值

标签 javascript jquery

我想生成目标文本框值取决于具有以下条件的另一个文本框值 -

假定的第一个 TextBox 值 - “我的文件名

  1. 如果第一个文本框值不是以“Copy of”开头,则目标值将为“Copy of [1] myfile name”。
  2. 如果第一个文本框值为“[1] myfile name 的副本”,则目标值为“[2] myfile name 的副本”。
  3. 如果第一个文本框值为“[2] myfile name 的副本”,则目标值为“[3] myfile name 的副本”。

即编号的增量。

<强> Here is my code sample

如何使用 jquery 执行此操作?

HTML:

<div class="panel">
  <input type="text" id="filename" value="filename">
</div>
<div class="panel">
  <input type="text" id="newfilename" value="">
</div>
<div class="panel">
  <button type="button" id="btnGenerate">
    Get File Name
  </button>
</div>

JS:

$('#btnGenerate').click(function(){
  var newname;
    var oldname = $('#filename').val();
  if(typeof oldname !== undefined || oldname != ''){
    if(oldname.indexOf('Copy of')){
            var nCount = parseInt(oldname.match(/\([.*]\)/),10) + 1;
            newname = "Copy of [" + nCount[1] + "] " + oldname;
            $('#newfilename').val(newname); 
    }else{
        newname = "Copy of [1] " + oldname'
    }
    $('#newfilename').val(newname);

  }
});

最佳答案

<强> Updated fiddle

你已经很接近了,你只需稍微调整一下正则表达式并添加 else 语句:

$('#btnGenerate').click(function(){
  var oldname = $('#filename').val();
  if(typeof oldname !== undefined || oldname != ''){

    //Adding '>-1' in this condition
    if(oldname.indexOf('Copy of')>-1) 
    { 
      var nCount = parseInt(oldname.match(/\[(.*)\]/)[1],10) + 1;
      var file_name = oldname.split('] ')[1];

      var newname = "Copy of [" + nCount + "] " + file_name;
    }else{
      var newname = 'Copy of [1] '+oldname;
    }

    $('#newfilename').val(newname); 
  }
});

希望这有帮助。

$('#btnGenerate').click(function(){
  var oldname = $('#filename').val();
  if(typeof oldname !== undefined || oldname != ''){
    if(oldname.indexOf('Copy of')>-1){
      var nCount = parseInt(oldname.match(/\[(.*)\]/)[1],10) + 1;
      var file_name = oldname.split('] ')[1];

      var newname = "Copy of [" + nCount + "] " + file_name;
    }else{
      var newname = 'Copy of [1] '+oldname;
    }

    $('#newfilename').val(newname); 
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel">
  <input type="text" id="filename" value="Copy of [1] filename">
</div>
<div class="panel">
  <input type="text" id="newfilename" value="">
</div>
<div class="panel">
  <button type="button" id="btnGenerate">
    Get File Name
  </button>
</div>

关于javascript - 生成文本取决于另一个文本框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40872822/

相关文章:

javascript - React Uncaught TypeError : this. setState 不是函数

javascript - 为什么我的范围函数没有从模型中获取数据?

javascript - 记忆一下 DOM 中的 Jquery

jquery - 如何通过查询字符串将数组从ajax传递到nodejs

javascript - 使用 Javascript/Jquery 创建高效的 Tab 切换

java - 如何在 Liferay serveResource(-, -) 方法中从 AJAX 请求下载文件

javascript - 在 Android Studio 上使用 JavaScript 时应用崩溃

javascript - 在 Electron 中找不到模块

javascript - 获取类的 h3 元素

javascript - 提交后HTML显示php代码