2015-11-26 34 views
0

我有一个名为'dump'的提交按钮。我想从文档中删除它,因为如果用户忘记点击它,它会毁掉两个表。相反,我想要做的就是把它放在onchange事件中:如何从HTML选择标记中调用点击事件

<select class="form-control" id="groupid" name="groupid" onchange="this.form.submit(); '<?php echo $_POST["dump"] ?>'"> 

但是这不起作用。也许我做错了。 我怎样才能触发转储按钮的单击事件:

if($_POST['dump']) { ... } 

当GROUPID选择框的变化和:

onchange="this.form.submit();" 

叫?如何以编程方式完成此操作,以便我可以清除“转储”按钮的文档?

回答

0

为你解释,我想你想要的是隐藏按钮,这样,

使用风格=“visibility:hidden的”转储(提交按钮)

+0

我想要做的是彻底删除转储按钮,并在onchange中触发其点击事件,正如我在我的文章中所述。 – Landslyde

1

我觉得你的提交按钮被命名为“提交”。因此,form.submit是指按钮而不是方法。重命名按钮或将其删除。

BTW

作为一般规则,自动提交表单时控制的变化是从可用性和可访问性的角度来看一个 非常糟糕的主意。见 WCAG - F36: Failure of Success Criterion 3.2.2 due to automatically submitting a form and presenting new content without prior warning when the last field in the form is given a valueWCAG - G13: Describing what will happen before a change to a form control that causes a change of context to occur is made

例如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<form method="post" id="myform"> 
 
    <select class="form-control" id="groupid" name="groupid"> 
 
    <option name="name" value="0">0</option> 
 
    <option name="name" value="1">1</option> 
 
    </select> 
 
    <input type="submit" id="dump" name="dump" value="Dump" class="btn btn-danger"> 
 
</form> 
 

 
<script> 
 
    $(function() { 
 

 
    $("#groupid").on('change', function(e) { 
 
     $('#dump').trigger('click'); //trigger Dump click event 
 
    }); 
 
    $('#dump').on('click', function(e) { 
 
     e.preventDefault(); //prevent submit action 
 
     console.log('Dump button click event call') 
 
     $(this).attr('value', 'Dump button click event call') 
 
    }); 
 

 
    }); 
 
</script>

+0

我编辑了我的帖子以显示按钮的名称。 form.submit只是加载一个选择框,而不是提交表单进行处理。但感谢您的意见。 – Landslyde

+0

@Landslyde删除'<?php echo $ _POST [“dump”]?>'在您的onchange代码中,cauz它是无效的js代码,所以onchange永远不会调用this.form.submit() –

+0

form.submit工作正常,Felix_Ho。我只需要知道触发转储按钮的点击事件,以便我可以从文档中删除它。当form.submit动作发生时,我需要触发转储事件。这是我需要帮助的。如果我不能用form.submit在onchange中这样做,那么在form.submit被触发时如何触发? – Landslyde

1

简单地:

1)使用hidden="hidden" attriute上转储按钮

2)使用onchange="document.getElementById('dump').click();"属性,在你希望事件触发afterchange的地方,然后点击dump时应该做什么,将在onchange上触发onchange,在那里添加onchange事件。

+0

谢谢Nur Ys。清洁,简单,并重点。尼斯。 – Landslyde

+0

如果这可以解决您的问题,请将其勾选为答案,以便其他人从中获益:) –

相关问题