Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:can';找不到元素_Javascript_Php_Html_Forms_Submit - Fatal编程技术网

Javascript:can';找不到元素

Javascript:can';找不到元素,javascript,php,html,forms,submit,Javascript,Php,Html,Forms,Submit,我遇到了一个奇怪的问题:我试图从javascript中获取元素,但我无法 我的html代码由php动态创建: <form id="form_color_{$color->id}" action="?com=saveColor" method="POST"> <!--some input elements--> <a href="javascript:saveColor({$color->id})"> <

我遇到了一个奇怪的问题:我试图从javascript中获取
元素,但我无法

我的html代码由php动态创建:

<form id="form_color_{$color->id}" action="?com=saveColor" method="POST">   
    <!--some input elements-->
    <a href="javascript:saveColor({$color->id})"> 
        <img src="{$webSiteUrl}assets/img/admin/floppy_disk_24.png" /> 
        <span> Save</span> 
    </a>
</form>
函数正确接收id参数,但未提交表单

如果我试图获取form元素,我会得到null

function saveColor(id){
    form = 'form_color_'+id;
    var doc = document.getElementById(form);
    alert(doc);
    $("#form_color_1").submit();
}
该函数与其他形式完美配合

下面是php生成的代码示例:

<form id="form_color_1" action="?com=saveColor" method="POST">
    <!--some input elements-->
    <a  href="javascript:saveColor(1)"> 
        <img imgc="http://10.10.10.46/c5liveOnLine/assets/img/admin/floppy_disk_24.png" /> 
        <span> Save</span> 
    </a>
</form>


我错过了什么

你所拥有的应该可以使用,当然除非页面上有另一个表单具有相同的
id
(这将是不好的)

但是请注意,您根本不需要使用
id
s,因此,如果
id
s是问题所在,那么解决方法就是不使用它们。只需给触发元素一个类:

<form action="?com=saveColor" method="POST">   
    <!--some input elements-->
    <a class="submit-form"> 
        <img src="{$webSiteUrl}assets/img/admin/floppy_disk_24.png" /> 
        <span> Save</span> 
    </a>
</form>
我使用委托处理程序是因为我看不出有任何理由不这样做,这意味着您可以根据需要动态添加和删除表单


但是请注意,您根本不需要JavaScript,除非您所做的不仅仅是提交表单<代码>按钮元素可以按您希望的方式进行样式设置,其默认操作是提交它们所在的表单。因此:

<form action="?com=saveColor" method="POST">   
    <!--some input elements-->
    <button> 
        <img src="{$webSiteUrl}assets/img/admin/floppy_disk_24.png" /> 
        <span> Save</span> 
    </button>
</form>

拯救

什么是
控制台日志(id)输出?它输出正确的ID。如果表单存在,您显示的代码肯定会提交表单。我们不能根据问题的内容来帮助你,因为它会起作用。我真的不知道该说什么。。。形式存在。我能发些有用的东西吗?我会避免发布整个源代码,因为它非常长。问题是否与同一结构存在多种形式有关?@Jacopograsi:您不想发布代码墙,但应该可以创建一个。谢谢,第一个解决方案成功了。我还是不明白为什么
$(document).on("click", ".submit-form", function() {
    $(this).closest("form").submit();
});
<form action="?com=saveColor" method="POST">   
    <!--some input elements-->
    <button> 
        <img src="{$webSiteUrl}assets/img/admin/floppy_disk_24.png" /> 
        <span> Save</span> 
    </button>
</form>