我进行api调用并获得一个如下所示的json响应:
{"Field":"Amount","FieldName":"Amount","FieldType":"Numeric","MaximumLength":128,"MinimumLength":0,"Options":"Mandatory"}
api调用返回5-10个这些对象。 在我的HTML中,我有一个表单中的字段,它们看起来如下
<div class="form-group">
<label class="col-md-4 control-label" for="Amount">Amount</label>
<div class="col-md-4">
<input name="amount" class="form-control input-md" id="amount" type="text" placeholder="placeholder">
</div>
</div>
现在,根据json repsonse,我需要显示/隐藏不同的字段。另外,我需要传递最小和最大长度,以及是否需要(“选项”:“强制”,在此示例中)属性为html,因此前端已经验证(显然,进一步验证将是完成服务器端。)
最好的方法是什么?
编辑:
我使用class =“hidden”隐藏表单元素。此外,每个表单元素都有一个与表单元素的id相同的类。
到目前为止我所尝试的是以下内容:
var ids = [];
for(var item in data) {
ids.push(data[item]['Field']);
$("." + ids[ids.length]).removeClass("hidden");
}
所以在上面的例子中,我希望在第一次迭代中发生的是
$("." + ids[ids.length]).removeClass("hidden");
更改为
$(.Amount).removeClass("hidden");
因此显示表单元素。
由于
答案 0 :(得分:2)
问题出在这一行
Label label = new Label();
label.Text = $"Hello World";
MainGrid.Children.Add(label);
当你将一个元素推送到ids数组时,长度变为1,你的元素位于第0位,但你正在第一个位置访问元素。
要更正它,请将行更改为
$("." + ids[ids.length]).removeClass("hidden");