Zendesk:将表单值放入主题时出现问题

Zendesk: Having issue placing form value into subject

我正在尝试在 Zendesk 中获取一个表单,在提交主题和描述时由自定义表单字段填写。到目前为止,我已经尝试了两种方法来尝试执行此操作,但我都没有成功。

这里推荐第一种方法https://support.zendesk.com/hc/en-us/articles/115002860148-Disabling-the-subject-and-description-fields-on-the-new-request-form-in-Help-Center-

我通过 document_head.hbs 添加了 JQuery 到网站,并使用了与推荐的代码类似的代码。 这是上面源代码中的内容

$('.form-field.string.optional.request_subject').hide();// Hide subject 
$('.form-field.string.required.request_subject').hide(); // Hide subject 
$('.form-field.request_description').hide(); // Hide description
$('#request_subject').val('test subject'); // Autofill subject 
$('#request_description').val('test description'); // Autofill description

我正在尝试用自定义字段值替换描述和主题,所以我听从了 post 中另一个人的建议。

$('.form-field.string.optional.request_custom_fields_360000410968').hide();// Hide Custom Field

因此,我试图解释我的代码所做的一些更改。

    $('.form-field.string.required.request_subject').hide(); // Hide subject 
    $('.form-field.request_description').hide(); // Hide description
    $('#request_subject').val('.form-field.string.required.request_custom_field_1500001768241'); // Autofill subject 
    $('#request_description').val('.form-field.string.required.request_custom_field_1500001768241'); // Autofill 

使用此代码,描述值仍然可见,而不是用用户插入到自定义字段中的值填充描述,而是插入一个字符串。

form-field.string.required.request_custom_field_1500001768241

因为我无法隐藏该字段,而且我在获取其他值时遇到问题,所以我尝试了方法二。

https://support.zendesk.com/hc/en-us/community/posts/360036935534-Support-Tip-How-to-change-the-ticket-Subject-using-a-trigger

此方法涉及使用更多网站功能。有涉及使用 HTTP 或 URL 扩展的建议。

我创建了一个 HTTP 扩展来 PUT 到这个 URL

https://*My Subdomain*.zendesk.com/api/v2/tickets/{{ticket.id}}.json

此扩展由网站触发器触发,该触发器在创建工单时激活。当触发器激活时,它会运行 JSON 语句。 在 JSON 我把

{"ticket": {"subject": "{{ticket.ticket_field_1500001768241}}"}}

这也不起作用。我不确定要采取哪些其他步骤,所以如果能提供任何帮助,我将不胜感激。谢谢。

为了确保页面加载完成后的代码运行s,将其添加到主题中的script.js,里面'DOMContentLoaded' 事件监听器,像这样:

document.addEventListener('DOMContentLoaded', function() {
  $('.form-field.string.optional.request_subject').hide();
  $('.form-field.string.required.request_subject').hide();
...

将一个字段的值赋给另一个字段

您在这里所做的是将字符串传递给 .val() 方法。为了传递另一个字段的值,您应该使用以下语法:

$('#request_subject').val($('#request_custom_fields_1500001768241').val())

有关如何使用 .val()

的更多详细信息,请参阅 https://api.jquery.com/val/

添加事件处理程序

最后,如果您只是将上面的代码添加到您的 script.js,它只会在页面加载时 运行 执行一次,而不是在用户在自定义字段中键入内容或提交表单时执行。为了解决这个问题,将前一行代码包装在一个事件处理程序中,然后 运行 每次发生特定事件(例如字段值更改)时都会再次编写该代码。

$('#request_custom_fields_1500001768241').on('change', function() {
    $('#request_subject').val($('#request_custom_fields_1500001768241').val());
    $('#request_description').val($('#request_custom_fields_1500001768241').val());
});