Javascript Drupal 7 jQuery Drupal行为问题
我一直在尝试将一个在d6中运行良好的javascript文件转换为d7,我一直在搜索有关drupal行为的信息,但似乎找不到解决此问题的正确方法 以下脚本返回了一个意外的标记错误),用于前面的结束括号(jQuery)Javascript Drupal 7 jQuery Drupal行为问题,javascript,jquery,drupal-7,Javascript,Jquery,Drupal 7,我一直在尝试将一个在d6中运行良好的javascript文件转换为d7,我一直在搜索有关drupal行为的信息,但似乎找不到解决此问题的正确方法 以下脚本返回了一个意外的标记错误),用于前面的结束括号(jQuery) (函数($){ var VAT=0.2; 变量数量\ u后缀=“字段采购订单数量”; var PRICE_SUFFIX=“现场采购订单价格”; var小计\u后缀=“现场采购订单项目st”; var VAT_后缀=“现场采购订单项目VAT”; var TOTAL_SUFFIX=“字
(函数($){
var VAT=0.2;
变量数量\ u后缀=“字段采购订单数量”;
var PRICE_SUFFIX=“现场采购订单价格”;
var小计\u后缀=“现场采购订单项目st”;
var VAT_后缀=“现场采购订单项目VAT”;
var TOTAL_SUFFIX=“字段采购订单项目总计”;
var数量域;
var-priceFields;
var fieldsValid=false;
函数isNumber(值){
return!isNaN(parseFloat(value))&&
isFinite(值);
}
函数有效值(值){
返回isNumber(值)&&
parseFloat(值)>0;
}
函数addCommas(nStr){
nStr+='';
var x=nStr.split('.');
var x1=x[0];
变量x2=x.长度>1?'.+x[1]:'';
var rgx=/(\d+)(\d{3})/;
while(rgx.测试(x1)){
x1=x1.替换(rgx,'$1'+','+'$2');
}
返回x1+x2;
}
函数小数(值){
if(isNumber(值)){
var numericValue=parseFloat(值);
返回numericValue.toFixed(2);
}
}
函数validateFields(){
var fieldsValid=true;
var allFields=新数组();
quantityFields=jQuery('input[id*=“'+数量后缀+””);
priceFields=jQuery('input[id*=“'+价格后缀+”);
allFields.push.apply(allFields,quantityFields);
allFields.push.apply(allFields,priceFields);
对于(i=0;i我不知道您的代码是否正确,但强烈建议您以这种方式在Drupal>7中使用JavaScript:
(function ($) {
Drupal.behaviors.yourFunction = {
attach: function(context, settings) {
var VAT = 0.2;
var QUANTITY_SUFFIX = "field-po-quantity";
var PRICE_SUFFIX = "field-po-price";
var SUBTOTAL_SUFFIX = "field-po-item-st";
var VAT_SUFFIX = "field-po-item-vat";
var TOTAL_SUFFIX = "field-po-item-total";
var quantityFields;
var priceFields;
var fieldsValid = false;
function isNumber(value) {
return !isNaN(parseFloat(value)) &&
isFinite(value);
}
function validValue(value) {
return isNumber(value) &&
parseFloat(value) > 0;
}
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
function decimalise(value) {
if (isNumber(value)) {
var numericValue = parseFloat(value);
return numericValue.toFixed(2);
}
}
function validateFields() {
var fieldsValid = true;
var allFields = new Array();
quantityFields = $('input[id*="' + QUANTITY_SUFFIX + '"]');
priceFields = $('input[id*="' + PRICE_SUFFIX + '"]');
allFields.push.apply(allFields, quantityFields);
allFields.push.apply(allFields, priceFields);
for (i=0; i<allFields.length; i++) {
var field = allFields[i];
var valueString = field.value;
if (!validValue(valueString)) {
field.style.borderStyle="solid";
field.style.border="inset 1px red";
fieldsValid = false;
} else {
field.style.borderStyle="none";
}
}
this.fieldsValid = fieldsValid;
}
$(document).click(function() {
validateFields();
if (fieldsValid) {
var subTotalSum = 0;
var vatSum = 0;
var totalSum = 0;
$('#field-po-items-values tbody tr:not(.content-multiple-removed-row)').each(function(){
var quantityString = $(this).find('input[id*="' + QUANTITY_SUFFIX + '"]').val();
var numericQuantity = decimalise(quantityString);
var priceString = $(this).find('input[id*="' + PRICE_SUFFIX + '"]').val();
var numericPrice = decimalise(priceString);
var subtotal = parseFloat(numericPrice * numericQuantity);
$(this).find('input[id*="' + SUBTOTAL_SUFFIX + '"]').val(addCommas(decimalise(subtotal)));
var vat = subtotal * VAT;
$(this).find('input[id*="' + VAT_SUFFIX + '"]').val(addCommas(decimalise(vat)));
var total = subtotal + vat;
$(this).find('input[id*="' + TOTAL_SUFFIX + '"]').val(addCommas(decimalise(total)));
subTotalSum += subtotal;
vatSum += vat;
totalSum += parseFloat(total);
});
$('input[id*="edit-field-po-subtotal"]').val(addCommas(decimalise(subTotalSum)));
$('input[id*="edit-field-po-vat"]').val(addCommas(decimalise(vatSum)));
$('input[id*="edit-field-po-total"]').val(addCommas(decimalise(totalSum)));
}
}
}
};
})(jQuery);
(函数($){
Drupal.behaviors.yourFunction={
附加:功能(上下文、设置){
var VAT=0.2;
变量数量\ u后缀=“字段采购订单数量”;
var PRICE_SUFFIX=“现场采购订单价格”;
var小计\u后缀=“现场采购订单项目st”;
var VAT_后缀=“现场采购订单项目VAT”;
var TOTAL_SUFFIX=“字段采购订单项目总计”;
var数量域;
var-priceFields;
var fieldsValid=false;
函数isNumber(值){
return!isNaN(parseFloat(value))&&
isFinite(值);
}
函数有效值(值){
返回isNumber(值)&&
parseFloat(值)>0;
}
函数addCommas(nStr){
nStr+='';
var x=nStr.split('.');
var x1=x[0];
变量x2=x.长度>1?'.+x[1]:'';
var rgx=/(\d+)(\d{3})/;
while(rgx.测试(x1)){
x1=x1.替换(rgx,'$1'+','+'$2');
}
返回x1+x2;
}
函数小数(值){
if(isNumber(值)){
var numericValue=parseFloat(值);
返回numericValue.toFixed(2);
}
}
函数validateFields(){
var fieldsValid=true;
var allFields=新数组();
quantityFields=$('input[id*=“'+数量后缀+'”);
priceFields=$('input[id*=“'+价格后缀+'”);
allFields.push.apply(allFields,quantityFields);
allFields.push.apply(allFields,priceFields);
对于(i=0;i
我不知道您的代码是否正确,但强烈建议在Drupal>7中使用JavaScript:
(function ($) {
Drupal.behaviors.yourFunction = {
attach: function(context, settings) {
var VAT = 0.2;
var QUANTITY_SUFFIX = "field-po-quantity";
var PRICE_SUFFIX = "field-po-price";
var SUBTOTAL_SUFFIX = "field-po-item-st";
var VAT_SUFFIX = "field-po-item-vat";
var TOTAL_SUFFIX = "field-po-item-total";
var quantityFields;
var priceFields;
var fieldsValid = false;
function isNumber(value) {
return !isNaN(parseFloat(value)) &&
isFinite(value);
}
function validValue(value) {
return isNumber(value) &&
parseFloat(value) > 0;
}
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
function decimalise(value) {
if (isNumber(value)) {
var numericValue = parseFloat(value);
return numericValue.toFixed(2);
}
}
function validateFields() {
var fieldsValid = true;
var allFields = new Array();
quantityFields = $('input[id*="' + QUANTITY_SUFFIX + '"]');
priceFields = $('input[id*="' + PRICE_SUFFIX + '"]');
allFields.push.apply(allFields, quantityFields);
allFields.push.apply(allFields, priceFields);
for (i=0; i<allFields.length; i++) {
var field = allFields[i];
var valueString = field.value;
if (!validValue(valueString)) {
field.style.borderStyle="solid";
field.style.border="inset 1px red";
fieldsValid = false;
} else {
field.style.borderStyle="none";
}
}
this.fieldsValid = fieldsValid;
}
$(document).click(function() {
validateFields();
if (fieldsValid) {
var subTotalSum = 0;
var vatSum = 0;
var totalSum = 0;
$('#field-po-items-values tbody tr:not(.content-multiple-removed-row)').each(function(){
var quantityString = $(this).find('input[id*="' + QUANTITY_SUFFIX + '"]').val();
var numericQuantity = decimalise(quantityString);
var priceString = $(this).find('input[id*="' + PRICE_SUFFIX + '"]').val();
var numericPrice = decimalise(priceString);
var subtotal = parseFloat(numericPrice * numericQuantity);
$(this).find('input[id*="' + SUBTOTAL_SUFFIX + '"]').val(addCommas(decimalise(subtotal)));
var vat = subtotal * VAT;
$(this).find('input[id*="' + VAT_SUFFIX + '"]').val(addCommas(decimalise(vat)));
var total = subtotal + vat;
$(this).find('input[id*="' + TOTAL_SUFFIX + '"]').val(addCommas(decimalise(total)));
subTotalSum += subtotal;
vatSum += vat;
totalSum += parseFloat(total);
});
$('input[id*="edit-field-po-subtotal"]').val(addCommas(decimalise(subTotalSum)));
$('input[id*="edit-field-po-vat"]').val(addCommas(decimalise(vatSum)));
$('input[id*="edit-field-po-total"]').val(addCommas(decimalise(totalSum)));
}
}
}
};
})(jQuery);
(函数($){
Drupal.behaviors.yourFunction={
附加:功能(上下文、设置){
var VAT=0.2;
变量数量\ u后缀=“字段采购订单数量”;
var PRICE_SUFFIX=“现场采购订单价格”;
var小计\u后缀=“现场采购订单项目st”;
var VAT_后缀=“现场采购订单项目VAT”;
var TOTAL_SUFFIX=“字段采购订单项目总计”;
var数量域;
var-priceFields;
var fieldsValid=false;
函数isNumber(值){
return!isNaN(parseFloat(value))&&
isFinite(值);
}
函数有效值(值){
返回isNumber(值)&&
parseFloat(值)>0;
}
函数addCommas(nStr){
nStr+='';
var x=nStr.split('.');
var x1=x[0];
变量x2=x.长度>1?'.+x[1]:'';
var rgx=/(\d+)(\d{3})/;
while(rgx.测试(x1)){
x1=x1.替换(rgx,'$1'+','+'$2');
}
返回x1+x2;
}
函数小数(值){
if(isNumber(值)){
var numericValue=parseFloat(值);
返回numericValue.toFixed(2);
}
}
函数validateFields(){
var fieldsValid=true;
var allFields=新数组();
quantityFields=$('input[id*=“'+数量后缀+'”);
priceFields=$('input[id*=“'+价格后缀+'”);
allFields.push.apply(allFields,quantityFields);
allFields.push.apply(allFields,priceFields);
对于(i=0;i