firefox 31 javascript提交无法正常工作

时间:2014-07-25 06:33:00

标签: javascript firefox form-submit

firefox 31的问题,因为javascript提交无法正常工作。产品页面出现问题,因为在选择产品后,它没有导航到购物车页面或心愿单页面。我已经在其他浏览器和firefox 30上测试了它,它可以正常工作。我也尝试禁用其他插件,但它没有工作。我调试下面给出的代码片段,它的变量按照逻辑获得所需的值,例如,只有当用户检查了字段时才进入else。我会很感激任何快速的解决方案。

    echo "<input class=\"button wish_btn_style\" type=\"submit\" value=\"Add to   
    wishlist\" onclick=\"return changelocation('wishlist.php')\"><!--img   
    src=\"img/wishlist_small.png\" width=\"16\" height=\"15\"-->";
    echo "<input class=\"button cart_btn_style\" type=\"submit\" value=\"Add to cart\" 
    onclick=\"return changelocation('cart.php')\"><!--img src=\"img/cart_gray.png\" 
    width=\"32\" height=\"24\"-->";

function changelocation(action)
{var canigo=0;
   var x=document.getElementById('txt_quent').value;
   var status;
 if((x=="") || isNaN(x))
 {
  alert("Please enter quantity only in number");
  var canigo=1;
  return false;
    }

    if(canigo==0)
        {status=$('input:radio[name="subid"]:checked').val();
    if(isNaN(status))
    {

     alert('Please select the desired product specification');
        return false;   
    }
    else
    {

         document.getElementById('product').action=action;
        document.getElementById('product').target='_self';
        document.getElementById('product').submit();


        return true;  

    }
    }

    }

2 个答案:

答案 0 :(得分:0)

您的表单中是否有一个名为“action”的输入字段?

我在Firefox 31中遇到了一些旧代码的错误。在以前版本的Firefox中,.action已解析为表单的“action”属性,但在版本31中,它已更改为解析为名为'的输入字段而是在页面上执行操作。

我使用jQuery重新开始工作:

$("#defForm").attr("action", sURL);

或者,我可以更改页面上使用的输入字段命名约定。

我很想了解Firefox行为发生变化的原因。

答案 1 :(得分:-1)

编辑:在最后的帖子中解决了我的问题。

我遇到了同样的问题,但我使用输入操作,为我更改输入名称是个大问题。

此脚本适用于以前版本的Firefox 31。

if(ie){
    for(i=document.getElementById('miForm').attributes.length-1;i>0;i--){
        if(document.getElementById('miForm').attributes[i].name=='action'){
            document.getElementById('miForm').attributes[i].value='../views/newJSP.jsp';
            break;
        }
    }
}else document.getElementById('miForm').action='../views/newJSP.jsp';
document.getElementById('action').value='abrir';
document.getElementById('miForm').submit();

在Firefox中if(ie)不返回任何带有name动作的属性,在以前的版本中它返回动作属性。

我没有任何解决方案。

编辑: 这是一个错误?

https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.action

解决方案:

我的脚本在for循环中有错误。 在ie中,表单中属性的长度为116,action属性位于114,但在firefox中,长度为5,action为0。

这是更新form.action。

的代码
for(i=document.getElementById('miForm').attributes.length-1;i>=0;i--){
    if(document.getElementById('miForm').attributes[i].name=='action'){
        document.getElementById('miForm').attributes[i].value='../views/newJSP.jsp';
        break;
    }
}