javascript - 如何清除文本区域?

标签 javascript jquery html textarea

我在清除应用程序中的文本区域时遇到问题。该应用程序有两种获取特定数据格式的方法:搜索在线数据库和使用 javascript 库。

第一种方法:用户在文本字段中键入化学名称,然后按“搜索”按钮。如果请求的化合物在数据库中,则会在文本区域中显示正确的格式。

第二种方法:如果在数据库中找不到名称,则用户可以使用 JS 库生成适当的格式,并在同一文本区域中显示。

如果用户首先使用数据库,文本区域包含从数据库生成的数据,如果用户决定使用它,可以用 JS 库生成的数据替换它。问题是,如果文本区域已经有 JS 库生成的数据,则在使用第一种方法时,无法将其替换为数据库中的数据。在从数据库中插入数据之前,我不知道如何清除包含数据(由 JS 库生成)的文本区域。对不起,如果它仍然听起来令人困惑。

这是一段javascript代码:

<script>
  var sketcher = new ChemDoodle.SketcherCanvas('sketcher', 400, 300, {useServices:true});
  var mol = sketcher.getMolecule();
  var molFile = ChemDoodle.writeMOL(mol);

  function myFunc($data)
 {
  document.getElementById('txt_area').value = $data
  return false
  }
</script>

<span onclick="myFunc(ChemDoodle.writeMOL(sketcher.getMolecule()));"
 <button href='javascript:void(0)'; type="submit" id="get_mol">Get Mol</button>
</span>

Jquery/ajax:

$('#search').on('click', function() 
  {    
    chemical = $('#chemical').val();        
    $.ajax({
    type: "GET",
    url: "/_get_smiles",
    data : { 'chemical': chemical},
    success: function(data)
    {        
    $('#txt_area').text(data.smiles);
    },
    error: function(error) 
    {
    console.log(error)
    }
   });  
  });

HTML:

<input type="text" id="chemical" size="40">
<button type="submit" id="search" value="Search">Search</button>
<textarea id="txt_area" name="smiles_mol" rows="28" cols="49"></textarea>

要清除文本区域,我使用以下方法但不成功:

$('#txt_area').text = "";
$('#txt_area').html = "";
$("#txt_area").attr("value", "");

方法 $('#txt_area').val("");清除文本区域但阻止从数据库插入数据。非常感谢任何意见和建议!

最佳答案

我认为您只需更改 jQuery/AJAX 部分即可使用:

$('#txt_area').val(data.smiles);

但是,由于您似乎拥有两段不同的 JavaScript 和两段 HTML,但并未将它们编写在一起,因此这些部分之间的关​​系有点令人困惑。文件的结构是这样的吗?如果一个应该是另一个的后备,感觉它应该自动完成。

编辑 - 像这样,如果我理解正确的话:

$('#search').on('click', function() {    
  chemical = $('#chemical').val();        
  $.ajax({
    type: "GET",
    url: "/_get_smiles",
    data: {
      'chemical': chemical
    },
    success: function(data) {
      if (data.smiles) {
        $('#txt_area').val(data.smiles);
      } else {
        $('#txt_area').val(ChemDoodle.writeMOL(sketcher.getMolecule()));
      }
    },
    error: function(error) {
      console.log(error);
      $('#txt_area').val(ChemDoodle.writeMOL(sketcher.getMolecule()));
    }
  });  
});

关于javascript - 如何清除文本区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27325533/

相关文章:

HTML/CSS 使列表成行,每行 3 个框?

javascript - 使 Qt QWebView Bridge 可从 Webkit IFRAME(本地页面)访问的技巧

javascript - jQuery 循环遍历数组对象

JavaScript 函数 : Append string to object and return object value

javascript - 仅在可编辑列 td html 中接受数字

html - CSS3伪类不是第一个和最后一个 child

javascript - @typescript-eslint/no-unsafe-assignment : Unsafe assignment of an any value

Javascript:特定字符之前的粗体字符串

javascript - jsFiddle jQuery ajax 函数在Load 上不起作用

javascript - 如何在纯 JavaScript 中实现 jQuery 的 .wrapInner() 函数?