jquery - 基于Jquery切换更改输入
问题描述
所以基本上,当我点击保存时,varname
应该成为我在输入框中输入的新文本,而不是原来的名称。
但是,现在,无论我输入什么,它都会将其恢复为原始值。
$(document).ready(function() {
$('.edit-name').on('click', function() {
$(this).closest('div').find('span,input').toggle();
});
var name = $('#name').val();
$('#submit').on('click', function() {
$('#result').html(name);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="submit">Save</button>
<div id="result"></div>
<div class="editable">
<span>John</span>
<input type="text" id="name" name="name" value="John" style="display:none;" />
<i class="edit-name">Edit</i>
</div>
解决方案
因为您的name
var 已在文档准备就绪时进行了初始化。所以它具有您输入的初始值(这里是 John)。它应该被声明到点击上下文中。
$(document).ready(function() {
$('.edit-name').on('click', function() {
$(this).closest('div').find('span,input').toggle();
});
$('#submit').on('click', function() {
var name = $('#name').val();
$('#result').html(name);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="submit">Save</button>
<div id="result"></div>
<div class="editable">
<span>John</span>
<input type="text" id="name" name="name" value="John" style="display:none;" />
<i class="edit-name">Edit</i>
</div>
推荐阅读
- c++ - 如何使用 erase() 函数通过索引擦除向量?
- reactjs - 如何在 useState 钩子之后立即执行函数?
- java - Spring 应用程序看不到带有属性扩展名的文件(application.properties 除外)
- javascript - NodeJs:在mssql“完成”发射器中等待
- angular - Angular - 如何测试使用 viewProviders 的模板驱动表单组件?
- google-cloud-platform - 在容器中为 CloudRun 设置主机名
- c++ - 一个二维数组并按行存储值。第一个循环用于行索引,第二个循环用于列索引
- android - 在颤振项目中导致“无法解析符号 GradleException”的原因是什么?
- typescript - 你会怎么称呼一个以 T [] 作为输入并输出 T的函数?
- ios - Swift - 在 UITableView 中添加单元格