0

0

jQuery中正确操作表单元素值:.val() 与 .text() 的区别与应用

心靈之曲

心靈之曲

发布时间:2025-11-09 15:03:47

|

390人浏览过

|

来源于php中文网

原创

jquery中正确操作表单元素值:.val() 与 .text() 的区别与应用

本文旨在解决jQuery操作`textarea`等表单元素内容时常见的误区,深入剖析`.text()`和`.val()`方法的核心区别。通过具体案例和代码演示,我们将展示如何正确使用`.val()`方法来获取、设置或清空表单元素的值,从而避免因方法选择不当导致的功能失效问题,确保前端交互的准确性和稳定性。

前端开发中,使用jQuery进行DOM操作是常见的任务。然而,对于不同类型的HTML元素,选择正确的jQuery方法来操作其内容或值至关重要。一个常见的陷阱是尝试使用.text()方法来修改或清空

问题描述:textarea内容无法设置或清空

考虑一个场景,用户点击表格行时,相关数据会被填充到多个textarea中;同时,页面上还有一个“清空”按钮,用于清空所有textarea的内容。然而,开发者发现一旦用户手动修改了textarea中的文本,后续的程序化设置或清空操作就会失效。

以下是原始代码中导致问题的关键部分:

// 点击表格行时填充数据
$("#hastaliklar tr").click(function() {
  // ... 其他代码 ...
  var ad = $(this).find('td:eq(1)').html();
  // ... 获取其他td内容 ...
  $("#adtxt").text(ad); // 问题所在:尝试用.text()设置textarea值
  $("#tanimtxt").text(tanim);
  // ... 其他textarea的设置 ...
});

// 点击清空按钮时清空数据
$("#temizle").click(function() {
  $("#adtxt").text(""); // 问题所在:尝试用.text()清空textarea值
  $("#tanimtxt").text("");
  // ... 其他textarea的清空 ...
});

在上述代码中,无论是填充数据还是清空数据,都使用了jQuery的.text()方法来操作ID为adtxt、tanimtxt等的

.text() 与 .val() 的核心区别

要理解为什么.text()对

  1. .text() 方法

    • 用途: 用于获取或设置选定HTML元素的文本内容
    • 适用元素: 主要用于非表单元素,如

      Booth.ai
      Booth.ai

      高质量AI产品展示效果图生成

      下载

      等。它操作的是元素开始标签和结束标签之间的纯文本内容。

    • 示例: $('div').text('新文本') 会将
      内部的所有HTML和文本替换为“新文本”。
    • .val() 方法

      • 用途: 用于获取或设置选定表单元素当前值
      • 适用元素: 专门设计用于表单元素,包括(各种类型如text, checkbox, radio)、
      • 示例: $('input[type="text"]').val('新值') 会设置文本输入框的value属性;$('textarea').val('新内容') 会设置多行文本框的显示内容。
    • 对于

      解决方案:使用 .val() 方法

      将所有针对

      以下是修正后的JavaScript代码:

      // 确保在DOM加载完成后执行
      $(document).ready(function() {
        // 初始化DataTable
        $('#hastaliklar').DataTable();
      
        // 点击表格行时填充数据
        $("#hastaliklar").on("click", "tr", function() { // 使用事件委托,更健壮
          $(this).addClass('selected').siblings().removeClass('selected');
          var ad = $(this).find('td:eq(1)').html();
          var tanim = $(this).find('td:eq(2)').html();
          var belirti = $(this).find('td:eq(3)').html();
          var yap = $(this).find('td:eq(4)').html();
          var yapma = $(this).find('td:eq(5)').html();
      
          // 修正:使用 .val() 设置 textarea 的值
          $("#adtxt").val(ad);
          $("#tanimtxt").val(tanim);
          $("#belirtitxt").val(belirti);
          $("#yaptxt").val(yap);
          $("#yapmatxt").val(yapma);
      
          // 按钮显示/隐藏逻辑
          $("#kaydetbtn").addClass("unvisible").prop('readonly', true);
          $("#guncellebtn").removeClass("unvisible").prop('readonly', false); // 假设更新按钮应该可用
        });
      
        // 点击清空按钮时清空数据
        $("#temizle").click(function() {
          // 修正:使用 .val("") 清空 textarea 的值
          $("#adtxt").val("");
          $("#tanimtxt").val("");
          $("#belirtitxt").val("");
          $("#yaptxt").val("");
          $("#yapmatxt").val("");
      
          // 按钮显示/隐藏逻辑
          $("#guncellebtn").addClass("unvisible").prop('readonly', true);
          $("#kaydetbtn").removeClass("unvisible").prop('readonly', false); // 假设保存按钮应该可用
        });
      });

      HTML结构示例 (相关部分):

      Adı
      Tanımı

      注意事项:

      1. 事件委托: 在修正后的代码中,我们将$("#hastaliklar tr").click(...)改为了$("#hastaliklar").on("click", "tr", function(){...})。这种方式称为事件委托,它将事件监听器绑定到父元素(#hastaliklar),然后通过选择器(tr)来过滤触发事件的子元素。这对于动态添加的表格行或使用DataTable等插件时非常有用,因为它能确保即使表格内容更新,事件处理程序也能正常工作。
      2. 按钮状态: 原始代码中对按钮使用了prop('readonly', true)。对于按钮而言,通常使用prop('disabled', true)来禁用它们,或者直接通过CSS类(如unvisible)来控制其可见性。这里为了保持与原代码逻辑一致,沿用了readonly,但在实际项目中,建议根据需求选择disabled或仅通过可见性控制。
      3. 内容获取: 使用.html()从表格单元格获取内容时,如果内容包含HTML标签,.html()会返回包含标签的字符串。如果只需要纯文本,可以使用.text()。在本例中,由于内容可能较长,.html()通常是安全的。

      总结

      正确选择jQuery方法对DOM元素进行操作是前端开发中的基本功。对于表单元素,特别是

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

538

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

372

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

727

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

470

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

390

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

989

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

653

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

539

2023.09.20

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

121

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.7万人学习

CSS教程
CSS教程

共754课时 | 17万人学习

最新文章

更多
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号