Я использую Drupal 6. Мне нужно добавить ссылку на удаление в DOM. Затем я хочу использовать Drupal.attachBehaviors в элементе ссылки удаления, который я только что добавил. Я прилагаю поведение к этой ссылке, чтобы я мог написать больше javascript для обработки этой ссылки. Когда я прикрепляю поведение, как у меня ниже, я получаю
Строка 10: ошибка типа Uncaught: Cannont вызывает метод replace вместо undefined
$ ("# edit-field-product-ref-provider-0-nid-nid", context) .val () возвращает значение NULL. Если я закомментирую строку Drupal.attachBehaviors ниже, ошибка исчезнет, и team_current будет иметь ожидаемое мной значение.
- Правильно ли то, что я передаю Drupal.attachBehaviors?
- Можете ли вы сказать мне, почему строка Drupal.attachBehaviors вызывает ошибку в строке var team_current?
HTML, сгенерированный после выполнения JavaScript:
<div class="form-item" id="edit-field-product-ref-provider-0-nid-nid-wrapper">
<input type="text" name="field_product_ref_provider[0][nid][nid]" id="edit-field-product-ref-provider-0-nid-nid" size="60" value="bw11 [nid:631]" class="form-text form-autocomplete text noderelationships-nodereference-autocomplete noderelationships[field_product_ref_provider] noderelationships-processed nodeRefUi-processed" autocomplete="OFF">
<div class="noderelationships-nodereference-buttons-wrapper">
<a href="javascript:void(0)" class="noderelationships-nodereference-create-button" title="Create a new support team listing and assign it to this product">Create a new support team listing and assign it to this product</a>
<a href="javascript:void(0)" class="noderelationships-nodereference-remove-button" title="Remove support team from this product" style="">Remove support team from this product</a>
</div>
</div>
Javascript:
(function ($) {
// Store our function as a property of Drupal.behaviors.
Drupal.behaviors.tsrNodeRefUi = function (context) {
var team_current = $("#edit-field-product-ref-provider-0-nid-nid", context).val().replace(/\s\[nid:\d+\]/, '');
var remove_button = '<a href="javascript:void(0)" class="noderelationships-nodereference-remove-button" title="Remove support team from this product">Remove support team from this product</a>';
//Add Remove link...
$(".noderelationships-nodereference-buttons-wrapper").append(remove_button);
//Attach Behaviors
Drupal.attachBehaviors($(".noderelationships-nodereference-remove-button"));
};
}(jQuery));