我正在开发一个级联下拉列表。选择最后一项时,它会根据以前的所有选项从.cs列表中提取信息。这很好用。但是,我希望显示的结果包含可点击的链接以及其他信息。现在我正在使用document.write打开一个带有链接的新窗口。这不太理想。
function formatHyper(hyper) {
var NewWindow = window.open('', 'name', 'height=660,width=650,status=1');
var str = "Parts";
NewWindow.document.write(str.link(hyper));
}
Hyper是文本链接。从外部.cs文件调用,如下所示:
public class PhonePrice
{
private static List<Phone> Phones = new List<Phone>{
new Phone{Make="Apple",Model="iPhone 4",Carrier="ATT",Colour="black",Price=00.00f,Hyper="http://www.google.com"},
当我完成最后一个下拉选择时,它将显示有关我的选择的信息,但它会打开一个只包含链接的新窗口。如果我删除NewWindow变量,它将仅加载当前页面中的链接,从而使其无法看到任何其他返回的数据。
我希望它像货币一样工作。但不是添加$我希望它将文本转换为URL
function formatPrice(price) {
return "$" + price.toFixed(2);
}
以下是在新窗口中打开可点击链接时的样子。我希望可点击链接显示在未定义的位置。
Apple iPhone 4
承运人ATT
颜色:黑色
Hyper:undefined
价格:$ 00.00
请帮助!!
答案 0 :(得分:0)
CascadingDropDowns.cshtml文件的第23行。变化:
<p>Hyper: ${formatHyper(Hyper)}</p>
为:
<p>Hyper: <a id="link">${formathyper(hyper)}</a></p>
如果只有一个链接,那么这将有效。如果可能有多个,那么您需要使每个ID与超值匹配(假设它是唯一的)。
我无法使用您的代码对此进行测试,但它应该可以正常运行。而第一个答案的功能是:
<script type="text/javascript">
var texttheysee = 'My Link';
$(function formathyper(hyper) {
$('a#link').attr('href', hyper);
$('a#link').text(texttheysee);
});
</script>