我正在使用Razor视图进行项目(MVC)。
我试图通过单击按钮来动态填充列表(使用ul / li尝试,但select / option也可以)。用户正在填写一个字段,单击“添加”按钮,这会将其添加到ul / li结构中。
当我查看检查元素时,可以看到添加了值,我的问题是将它们存储到Session [“ ...”] ...或隐藏字段中,以便可以对其进行迭代在控制器动作中。
我从网上尝试了几个JS / Jquery答案,但是在我看来,这些答案都不起作用。
这是我填充ul / li结构的方式:
mongoengine.errors.InvalidQueryError: Querying the embedded document 'Comment' failed, due to an invalid query value
上面正确地用包含userinput值的列表项填充ul。
这是我的隐藏领域尝试:
function addPrice() {
var priceValue = $("#PriceValue").val() // this is the input that users fill in
var ul = document.getElementById("priceListBox");
var li = document.createElement("li");
li.setAttribute('class', "list-group-item list-group-item-action"); // set the class for design
li.setAttribute('id', priceValue); // set the id to be able to remove
li.appendChild(document.createTextNode(priceValue));
ul.appendChild(li);
}
这是我预定义的ul:
<input type="hidden" name="PriceValues" value="" runat="server"/>
这是我尝试建立阵列并在控制器操作中访问以下值的最新尝试:
<ul class="list-group col-md-3" id="priceListBox" name="priceListBox" runat="server"> </ul>
我想知道:
如果有任何问题,谢谢大家的答复,我将尽力正确答复。
亲切的问候。
答案 0 :(得分:1)
也许,我错了,但是,您的输入隐藏了,具有“名称”属性而不是id?那么,您不应该分配一个ID而不是一个名称吗?
答案 1 :(得分:0)
因此,在大家的输入和几次尝试下,我成功地在控制器中获取了值。
@joseatchang,您完全正确,很高兴!感谢您指出这一点。 @Andreas,您也是正确的,有了警报,我可以看到它在“ var listItems ...”处停止运行,然后不再运行。我也无法使其正常工作,我也更改了getElementById语法,但是我无法使函数正常工作,但是我仍然想知道出什么问题了,所以如果您要详细说明,我将不胜感激。 @Scott Rickman,我尝试使用.textContent和其他方法进行几种方法,但是以下方法却很吸引人(也感谢拆分技巧;):
通过将其放置在我动态添加列表项的位置来工作: document.getElementById(“ PriceValues”)。value + = priceValue +“;”;
并在我的控制器中: var a = Request.Form [“ PriceValues”];
谢谢大家的帮助,我非常感谢! 祝您度过愉快的一周!