在特定的magento cms页面的head部分加载jquery脚本

时间:2013-06-22 11:29:23

标签: jquery magento

我正在尝试将js脚本加载到我的头部中两天。 它仍然无法正常工作.. 我正在构建一个带有表单bij的cms页面,您可以订购一些产品样本(最多5个) 在页面的en处有一个小的contcat,用于提交请求

需要设置: - 中文文本 - 带有图片和复选框的网格 - 下面的联系表格发送样品申请

此时我已经尝试了几乎所有可能的选择。 - 通过自定义页面布局xml添加

    <reference name="head">
    <action method="addJs"><script>js/my.js</script></action>
    </reference> 
  • 制作了一个自定义的samplerequest.phtml并加载了 {{block type =“core / template”template =“page / kleurstalen.phtml”}}

  • 添加了js true page.xml等等。

这是我要加载的jquery代码:

<script type="text/javascript">
jq(document).ready(function(){
jQuery('#kleurstalenform').submit(function() {
if( jQuery('input:checked').length == 0 ) {
alert('U heeft geen stofstallen geselecteerd');
return false;
}
});
jq(":checkbox").bind('click', function(){
if( jq('input:checked').length > 4 ) {
jq(this).attr('checked', false);
alert( 'U kunt maximaal 4 stofstalen bij ons aanvragen.' );
}
});
});
var $j = jQuery.noConflict();
</script>

我不知道为什么它不起作用?也许这是一个范围问题?

感谢您的建议!

最佳

A

3 个答案:

答案 0 :(得分:0)

您应该已经在控制台中检查过(Chrome开发者工具中的F12),因为我认为您已经通过自定义页面layout.xml将脚本my.js添加到head块中做了正确的事情。但是,你添加的js将充满错误,这就是它无法正常工作的原因。

您已经jQueryjq然后使用$j在最后设置noConflict变量。

您还通过addJs方法包含了一个js文件,因此无需在文件my.js中包含打开和关闭<script>标记。尝试下面的脚本,看看是否可以让你到任何地方;

var $j = jQuery.noConflict();

$j(document).ready(function() {

    $j('#kleurstalenform').submit(function() {
        if( $j('input:checked').length == 0 ) {
            alert('U heeft geen stofstallen geselecteerd');
            return false;
        }
   });

    $j(":checkbox").bind('click', function(){
        if( $j('input:checked').length > 4 ) {
            $j(this).attr('checked', false);
            alert( 'U kunt maximaal 4 stofstalen bij ons aanvragen.' );
        }
    });

});

答案 1 :(得分:0)

您可以使用local.xml

添加js文件

在此文件app / design / frontend / YOUR_THEME / default / layout / local.xml

<?xml version="1.0" encoding="UTF-8"?>

<default>
   <reference name="head">
     <action method="addItem">js/your_file.js</name></action>
   </reference>
</default>

并将您的js文件放在此位置app / design / frontend / YOUR_THEME / default / skin / js

答案 2 :(得分:0)

我有js的复选框部分工作!:)

我根据你的建议修改了脚本,并将下面的代码添加到我的页面布局xml中。 (我也直接在cms页面工作,而不是使用自定义块或.phtml)

自定义布局更新XML:

    <reference name="head">
   <action method="addItem">
       <type>skin_js</type><name>js/kleurstalen.js</name>
   </action>
</reference>

现在脚本工作,只允许检查4个样本,这就是我需要的......

但是...

页面中的联系表单不会发送请求 还需要表单验证,(所以我必须寻找一些关于此的教程..) 我以为我可以使用“默认”varien脚本,但现在它将无法正常工作

在我的示例请求cms页面上,我已将此添加到我的代码中

<div><form id="kleurstalenform" action="" method="POST">
<script type="text/javascript">// <![CDATA[
<
var customForm = new VarienForm('kleurstalenform');>
// ]]></script>

我认为这可以与js文件结合使用,用于复选框最大值 但也许新的varienForm部分每个xml还需要一些方向? 我不知道要添加什么,以使其工作..

非常感谢!

最佳

A