javascript - 注入(inject)JS的特殊HTML字符

标签 javascript jquery html

我有一个按钮(名为本杰明):

<input type="submit" name="btn_submit" value="Next &rarr;" />

在点击事件中,它会显示“正在加载”并执行一些很酷的操作。但是,如果出现问题,我希望它在其他地方显示错误消息的同时改回原来的文本。

$('input[name=btn_submit]').click(function() {
    $(this).val('Loading');

    // Logicy Stuff...

    // Error?
    $(this).val('Next &rarr;');

    return false;
});

不知何故,文字文本 应用于按钮,而不是酷炫的 →。我该如何解决这个问题?

最佳答案

HTML 的评估规则与 JavaScript 不同。仅由 html 解析器解析的 html 实体。要么使用 unicode 文字,如下所示:

$(this).val('Next \u2192');

或者更好的是,跟踪原始值然后将其设置回去:

var initalButtonValue = $(this).val();
$(this).val('Loading');

// Stuff

$(this).val(initialButtonValue);

或者甚至更好,使用 HTML 数据属性来存储状态。

<input type="submit" name="btn_submit" value="Next &rarr;" data-normal-value='Next &rarr;' data-loading-value='Loading...' />

然后:

// Set to loading
$(this).val($(this).data("loading-value"));

// and back to normal
$(this).val($(this).data("normal-value"));

关于javascript - 注入(inject)JS的特殊HTML字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9233464/

相关文章:

javascript - HTML5 和 Objective-C

HTML 新行上的随机空间

html - 如何使输入更像文本区域,但没有扩展图标(右下角)?

javascript - 如何确保在获取元素的边框宽度之前添加了一个类?

javascript - 对文档添加的元素进行点击检测

javascript - 选择下拉值会显示一个文本框,但不存储传入其中的值

javascript - jQuery - 使用数字键迭代对象

javascript - 如何获取 jQuery 中调用函数的 div 的 ID?

javascript 或 jquery - 获取 href 的最后 2 个字符

javascript - 解析 React 中字符串内的嵌套 HTML?