我有一个带有一些下拉列表的HTML表单。我需要下拉列表中所选项目的值来替换另一个下拉列表中的标记。
@Html.DropDownListFor(model => model.TrainID, new SelectList(Model.TrainItems, "Value", "Text"), htmlAttributes: new { id = "train" })
@Html.DropDownListFor(model => model.ReasonID, new SelectList(Model.ReasonItems, "Value", "Text"), htmlAttributes: new { id = "reason" })
@Html.DropDownListFor(model => model.MessageID, new SelectList(Model.MessageItems, "Value", "Text"), htmlAttributes: new { id = "message" })
我需要列车的值和用户选择的原因来替换所选消息项的某些部分。
例如,所选消息会说:“由于[REASON],列车#[NUM]已被取消。对于给您带来的不便,我们深表歉意。”然后它会使用前两个下拉列表中的选定值动态填充消息到HTML表单上的文本框中:“火车#123因天气原因已被取消。我们对此给您带来的不便表示歉意。”:
@Html.EditorFor(model => model.AnnouncementText, new { htmlAttributes = new { id = "text" } })
我试图通过javascript做到这一点,没有运气:
$(function () {
var str = document.getElementById("message").innerHTML;
var res = str.replace("[REASON]", model.ReasonName);
document.getElementById("text").innerHTML = res;
});
显然,string.replace方法不适用于剃刀语句,我想知道是否存在这样的方法,或者我是否采用了错误的方法。
答案 0 :(得分:0)
在一点帮助下,我找到了最适合我的答案。我的第一次尝试非常接近,经过一些调整就能得到它。
days = [1,2,3,4,5,6,7]
def doomsday_func(year):
c = str(year)[:2]
a = (5((c % 4) + 2) % 7)
return(days[a])
print(doomsday_func(1954))
感谢RajN的帮助!