Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 chrome和IE 8的explicitOriginalTarget.id的替代方案_Javascript_Jquery_Internet Explorer 8 - Fatal编程技术网

Javascript chrome和IE 8的explicitOriginalTarget.id的替代方案

Javascript chrome和IE 8的explicitOriginalTarget.id的替代方案,javascript,jquery,internet-explorer-8,Javascript,Jquery,Internet Explorer 8,我正试图找到一种跨浏览器兼容的方法来挑选在表单提交期间单击的按钮的id属性,该表单提交有两个不同的提交按钮。我可以通过以下几点在FireFox上实现这一点,但它在IE 8或Chrome中无法工作,因为它们不支持explicitOriginalTarget $("#postForm, #dialogPostForm, #pastPostForm").live('submit', function(event) { event.preventDefault(); if (e

我正试图找到一种跨浏览器兼容的方法来挑选在表单提交期间单击的按钮的id属性,该表单提交有两个不同的提交按钮。我可以通过以下几点在FireFox上实现这一点,但它在IE 8或Chrome中无法工作,因为它们不支持explicitOriginalTarget

   $("#postForm, #dialogPostForm, #pastPostForm").live('submit', function(event) {
     event.preventDefault();
     if (event.originalEvent.explicitOriginalTarget.id === 'pastPosts'){
     ...SNIP...
有人能推荐一种跨浏览器兼容的方法来做到这一点吗

更新我已尝试使用来自的答案,但我希望使用.live jquery方法并使用事件对象选择原始输入提交id

更新此处是我的表单,我正试图从中获取原始提交按钮id:

<form id="postForm" action="{% url account_tracker mashup.pk %}?fuzzy=true" method="post">
    <div class="mygoal">Update Your Progress: {{ form.post }}
    <input type="submit" value="+  1" class="formbtn" style="font-size:18px;"/>
    <input type="submit" value="This week" style="font-size:18px;" id="pastPosts" class="formbtn"/>         
    <span id="result" class="results"></span>
    </div>
</form>
更新我想出了自己的解决方案。添加一个onclick属性,将name属性添加到表单中。然后在表单处理中检查表单名称是否已过期,并对其进行处理,然后在表单处理完成后删除该属性。据我所知,这适用于所有浏览器

 <input type="submit" value="This week" style="font-size:18px;" id="pastPosts" class="formbtn" onclick="$('#postForm').attr('name', 'past');" />
鉴于:


如果我点击child,我会在Chrome、IE9和FF8中看到“child”。

别无选择

这是Firefox独有的属性

这是一个非常古老的问题,需要回答

我在谷歌上搜索了一下,找到了一个解决方案

基本上,试着获得焦点元素

例如:

作用${ $document.readyfunction{ $'user\u form'.submitfunctionevent{ event.preventDefault;//停止提交 $'name\u submit' 文本 //搜索所有提交按钮 $'input[type=submit],按钮[type=submit]',此 .filter':焦点“//查找焦点 .attr'name'//取名称 ; }; }; }jQuery;
单击提交名称:不可能重复我正在寻找启动表单提交的输入类型=提交id,因为有两个唯一的提交按钮。这给了我表单id,我可以得到输入,但不是哪一个发起了事件?在这种情况下,你真的需要提供更多的数据,特别是HTMLIf表单是由Enter提交的,:focus失败,我们应该得到第一个提交元素
<div id="parent">
    <div id="child">
        clicky
    </div>
</div>
$('#parent').live('click', function(e){
    var target = e.originalEvent || e.originalTarget;
    console.log($(target.srcElement || target.originalTarget).attr('id'));
});