在 Coldfusion 中使用 Font Awesome Unicode
Using Font Awesome Unicode with Coldfusion
我在提交表单的 ColdFusion 应用程序中有一个 HTML 输入按钮。我试图在按钮的文本中包含一个 Font Awesome 图标。我可以在不引发错误的情况下指定 Unicode 的唯一方法是加倍散列字符。
<input class="stylized_btn" tabindex="0" type="submit" name="save2"
id="save2" value=" &##xf0c7; Save This Ticket"
onclick="disableSaveButtonClick(event);" />
但是,它没有显示图标,而是显示了一个正方形。
这似乎是 ColdFusion 由于双标签而无法识别我的 Unicode 字符的怪癖,但这只是一个猜测。我的页面上还有其他按钮元素可以正确显示 Font Awesome 图标,所以我知道这不是我的字体定义的问题。我不确定我到底哪里出错了。谁能帮忙解释一下?
使用按钮标记更新了代码。
HTML 按钮
<button id="saveOnlyButton" name="save" class="stylized_btn">
<i class="fas fa-save"> </i> Update Ticket
</button>
JavaScript
window.onload=function(){
var SaveButton = document.getElementById("saveOnlyButton");
SaveButton.addEventListener("click", disableSaveButton);
}
//Save Button Logic
function disableSaveButton() {
console.log("Save button clicked");
document.getElementById("submitType").value = "save";
document.getElementById("saveOnlyButton").innerHTML = "Please Wait...";
document.getElementById("saveOnlyButton").disabled = true;
document.getElementById("autoSumForm").submit();
}
不使用输入元素,而是使用按钮。按钮的默认行为是提交表单。
<button class="stylized_btn btn-default" tabindex="0" id="save2" onclick="disableSaveButtonClick(event);"><i class="fa fa-save"></i> Save This Ticket</button>
(我添加了 btn-default 以防您使用 bootstrap)
您尝试过使用 BUTTON 标签吗? (我们停止使用 input:submit 按钮。)
我们通常使用<button type =“submit”><i class=“fa fa-lg fa-my-icon”></i > Label Text</button>
,但您应该可以使用HTML实体。
这不是您建议的 ColdFusion 中的怪癖。 ColdFusion 的行为完全符合预期。您需要双散列 ##
的原因是因为无论何时您在 <cfoutput>
标记中,ColdFusion 都会将单个散列 #
视为变量或可计算表达式的开始。当它找不到结束哈希时,它会抛出一个错误。
现在有时您的意图是将散列用于显示目的而不是评估变量或表达式,就像您的情况一样。所以解决方案是使用双散列 ##
和一个转义字符让 CF 知道你只想在渲染页面上将它显示为单个散列。
如果您使用浏览器的开发人员工具并检查元素,它应该会正确显示为单个哈希。解决您的问题的另一个方法是确保从 <cfoutput>
块中删除带有输入按钮的代码部分。
最重要的是,您不应该通过查看 CF 源代码进行调试,您应该通过使用浏览器的开发人员工具或浏览器的“查看源代码”选项查看呈现的页面来进行调试。如果可以,请通过提供提交按钮的“检查元素”的屏幕截图来更新您的原始问题。
我在提交表单的 ColdFusion 应用程序中有一个 HTML 输入按钮。我试图在按钮的文本中包含一个 Font Awesome 图标。我可以在不引发错误的情况下指定 Unicode 的唯一方法是加倍散列字符。
<input class="stylized_btn" tabindex="0" type="submit" name="save2"
id="save2" value=" &##xf0c7; Save This Ticket"
onclick="disableSaveButtonClick(event);" />
但是,它没有显示图标,而是显示了一个正方形。
这似乎是 ColdFusion 由于双标签而无法识别我的 Unicode 字符的怪癖,但这只是一个猜测。我的页面上还有其他按钮元素可以正确显示 Font Awesome 图标,所以我知道这不是我的字体定义的问题。我不确定我到底哪里出错了。谁能帮忙解释一下?
使用按钮标记更新了代码。
HTML 按钮
<button id="saveOnlyButton" name="save" class="stylized_btn">
<i class="fas fa-save"> </i> Update Ticket
</button>
JavaScript
window.onload=function(){
var SaveButton = document.getElementById("saveOnlyButton");
SaveButton.addEventListener("click", disableSaveButton);
}
//Save Button Logic
function disableSaveButton() {
console.log("Save button clicked");
document.getElementById("submitType").value = "save";
document.getElementById("saveOnlyButton").innerHTML = "Please Wait...";
document.getElementById("saveOnlyButton").disabled = true;
document.getElementById("autoSumForm").submit();
}
不使用输入元素,而是使用按钮。按钮的默认行为是提交表单。
<button class="stylized_btn btn-default" tabindex="0" id="save2" onclick="disableSaveButtonClick(event);"><i class="fa fa-save"></i> Save This Ticket</button>
(我添加了 btn-default 以防您使用 bootstrap)
您尝试过使用 BUTTON 标签吗? (我们停止使用 input:submit 按钮。)
我们通常使用<button type =“submit”><i class=“fa fa-lg fa-my-icon”></i > Label Text</button>
,但您应该可以使用HTML实体。
这不是您建议的 ColdFusion 中的怪癖。 ColdFusion 的行为完全符合预期。您需要双散列 ##
的原因是因为无论何时您在 <cfoutput>
标记中,ColdFusion 都会将单个散列 #
视为变量或可计算表达式的开始。当它找不到结束哈希时,它会抛出一个错误。
现在有时您的意图是将散列用于显示目的而不是评估变量或表达式,就像您的情况一样。所以解决方案是使用双散列 ##
和一个转义字符让 CF 知道你只想在渲染页面上将它显示为单个散列。
如果您使用浏览器的开发人员工具并检查元素,它应该会正确显示为单个哈希。解决您的问题的另一个方法是确保从 <cfoutput>
块中删除带有输入按钮的代码部分。
最重要的是,您不应该通过查看 CF 源代码进行调试,您应该通过使用浏览器的开发人员工具或浏览器的“查看源代码”选项查看呈现的页面来进行调试。如果可以,请通过提供提交按钮的“检查元素”的屏幕截图来更新您的原始问题。