问题是我使用带有客户端验证的ajaxed表单,它使用Drupal.settings来获取一些数据。作为验证年龄的示例,我将以下数据设置为drupal设置:
drupal_add_js(array(
'viewpoint_profile' => array(
'year' => date('Y'),
'month' => date('m'),
'day' => date('d')
)), 'setting');
但是每当使用ajax重新加载表单时,它会将上述设置合并到Drupal.settings,如果首次调用Drupal.settings.viewpoint_profile.year == 2011
,则在ajax重新加载后它是Drupal.settings.viewpoint_profile.year == array(2011, 2011)
,所以我不能在js中使用它一个字符串了。
所以基本上在添加它们之前清除viewpoint_profile的设置会很好,但是我没有设法找到它?或者可能有另一种方法来解决这个问题?
答案 0 :(得分:0)
如果必须使用drupal设置而不是数组的那些值。
drupal_add_js(array(
'viewpoint_profile' => array(array(
'year' => date('Y'),
'month' => date('m'),
'day' => date('d')
))), 'setting');
您还可以添加将与表单一起传递的密钥。
答案 1 :(得分:0)
您可以尝试以下方法:
// Create clon of 'viewpoint_profile'.
let viewpointProfile = $.extend(true, {}, settings.viewpoint_profile);
delete settings.viewpoint_profile;
// Use viewpointProfile instead of settings.viewpoint_profile.