Zendesk:将表单值放入主题时出现问题
Zendesk: Having issue placing form value into subject
我正在尝试在 Zendesk 中获取一个表单,在提交主题和描述时由自定义表单字段填写。到目前为止,我已经尝试了两种方法来尝试执行此操作,但我都没有成功。
我通过 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
因为我无法隐藏该字段,而且我在获取其他值时遇到问题,所以我尝试了方法二。
此方法涉及使用更多网站功能。有涉及使用 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());
});
我正在尝试在 Zendesk 中获取一个表单,在提交主题和描述时由自定义表单字段填写。到目前为止,我已经尝试了两种方法来尝试执行此操作,但我都没有成功。
我通过 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
因为我无法隐藏该字段,而且我在获取其他值时遇到问题,所以我尝试了方法二。
此方法涉及使用更多网站功能。有涉及使用 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());
});