A JavaScript function to update multiple hidden fields depending if they exist or not
我有一个JavaScript函数,我用它来更新隐藏的字段,其中包含向用户显示的图像的文件名。这在具有单个图像和单个隐藏字段的页面上工作正常。我正在尝试对其进行自定义,以便可以在单个页面上使用它来更新多个隐藏字段,具体取决于它们是否存在。
以前我试图从我的
在这个尝试中,我试图使用单个函数if if语句链接到隐藏字段的id但不幸的是我似乎无法让它在任何页面/隐藏字段上工作
谁能告诉我哪里出错了?我相信这是可能的,但我没有得到任何结果。谢谢
电流输出
1 2 3 | <input id="id_9-slider_one_image" name="9-slider_one_image" type="hidden" /> <input id="id_10-slider_two_image" name="10-slider_two_image" type="hidden" /> <input id="id_11-slider_three_image" name="11-slider_three_image" type="hidden" /> |
期望的输出
1 2 3 | <input id="id_9-slider_one_image" name="9-slider_one_image" type="hidden" value="P1DP.jpg"/> <input id="id_10-slider_two_image" name="10-slider_two_image" type="hidden" value="P6D6.jpg"/> <input id="id_11-slider_three_image" name="11-slider_three_image" type="hidden" value="P3D3.jpg"/> |
我的守则
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <img src="{% static"survey/images/pathone/" %}{{display_image}}" value="{{display_image}}" onload="updateInput(this)"/> <script type="text/javascript"> function updateInput(ish) { var valueAttribute = ish.getAttribute("value"); if($(this).attr("id") =="id_9-slider_one_image") document.getElementById("id_9-slider_one_image").setAttribute( "value", valueAttribute); if($(this).attr("id") =="id_10-slider_two_image") document.getElementById("id_10-slider_two_image").setAttribute( "value", valueAttribute); if($(this).attr("id") =="id_11-slider_three_image") document.getElementById("id_11-slider_three_image").setAttribute( "value", valueAttribute); } |
感谢这个问题和最高投票的答案,我能够在尝试设置值之前检查页面中是否存在id
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | {% if wizard.steps.current in steps %} <img src="{% static"survey/images/pathone/" %}{{display_image}}" value="{{display_image}}" onload="updateInput(this)"/> <script type="text/javascript"> function updateInput(ish) { var valueAttribute = ish.getAttribute("value"); if (document.getElementById('id_9-slider_one_image')) { document.getElementById("id_9-slider_one_image").setAttribute( "value", valueAttribute) } if (document.getElementById('id_10-slider_two_image')) { document.getElementById("id_10-slider_two_image").setAttribute( "value", valueAttribute) } if (document.getElementById('id_11-slider_three_image')) { document.getElementById("id_11-slider_three_image").setAttribute( "value", valueAttribute) } |