Javascript中的表单无法正常工作

问题描述 投票:1回答:2

我使用Javascript来显示一个带有可点击链接的菜单框,但我改变了主意,现在想要使用链接作为表单。

<script type="text/javascript">    
    $('.mouseon-examples div').data('powertipjq', $( [
    '<table class="tabulkajazyku"><form id="myformen" action="member" method="POST"><input type="hidden" name="jazyk" value="en"><tr><td><a class="odkaz_cerveny odkaz_cerveny_block" href="#" id="mylinken"><img src="/images/flag_en.jpg" class="vlajky"><div class="posun5">EN</div></a></td></tr></form><form id="myformes" action="member" method="POST"><input type="hidden" name="jazyk" value="es"><tr><td><a class="odkaz_cerveny odkaz_cerveny_block" href="#" id="mylinkes"><img src="/images/flag_es.jpg" class="vlajky"><div class="posun5">ES</div></a>&nbsp;</td></tr></form></table>'
    ].join('\n')));
$('.mouseon-examples div').powerTip({
    placement: 's',
    mouseOnToPopup: true
}); 
    </script>

为了开始表单工作,我需要这个代码

<script type="text/javascript"> 
    window.onload = function() {
document.getElementById('mylinken').onclick = function() {
    document.getElementById('myformen').submit();
    return false;
}; 
document.getElementById('mylinkes').onclick = function() {
    document.getElementById('myformes').submit();
    return false;
};    

};

它似乎没有工作。感谢action =“member”并发送表单,而不是将我重定向到名为member的站点,它只是href =“#”,它停留在同一页面并且什么都不做。

老实说,我不需要表单是可点击的链接,但简单的文本不起作用。我只需要从表中的每一行(tr)表现为一个表单。

按照经验法则,我是Javascript的初学者。

我在不同的页面上使用了Table部分(不是在任何Javascript代码中,一切正常)。

你可以帮我解决错误吗?

javascript forms html-table
2个回答
0
投票

click事件不会绑定到元素,因为代码运行时元素不存在。在用户显示工具提示之前,元素将不存在。

您可以在jQuery中使用委托事件将事件绑定到现有父元素,并查找冒泡到它的事件。这样,事件可以绑定到尚不存在的元素:

$(function() {
  $(document).on('click', '#mylinken', function(e) {
    e.preventDefault();
    $('#myformen').submit();
  }); 
  $(document).on('click', '#mylinkes', function(e) {
    e.preventDefault();
    $('#myformes').submit();
  });
});

0
投票

而不是使用onload,使用document.ready而不是onclick使用jquery单击处理程序并调用e.preventDefault();

https://api.jquery.com/click/

编辑:(对不起,我在手机上写了以上内容,编写代码太难了,这里有代码:

<script type="text/javascript">
    $(document).ready(function () {
        $('#mylinken, #mylinkes').click(function(e) {
            e.preventDefault();
            $('#myformen').submit();
        });
    });
</script>
© www.soinside.com 2019 - 2024. All rights reserved.