Javascript 如何修复此错误?未定义

Javascript 如何修复此错误?未定义,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码: HTML: <form method="post" action="<?php echo $this->serverUrl().str_replace('public','',$this->basePath()).'/user/sendmessagetoinbox/'; ?>"> <fieldset> <label>Subject</label> <input

我有以下代码:

HTML:

<form method="post" action="<?php  echo $this->serverUrl().str_replace('public','',$this->basePath()).'/user/sendmessagetoinbox/'; ?>">
    <fieldset>
        <label>Subject</label>
        <input type="text" name="inbox_subject" />
    </fieldset>
    <fieldset>
        <label>Message</label>
        <textarea name="inbox_message"></textarea>
    </fieldset>
    <fieldset>
        <button type="submit" class="btn btn-primary btn-save send-btn">Send message to inbox</button>
        <!-- <input type="submit" class="btn btn-submit" value="Send message to inbox" /> -->
    </fieldset>
    <input type="hidden" value="" name="patient-id" />
</form>
$('#inMail').on('show.bs.modal', function (event) {
    var url='<?php  echo $this->serverUrl().str_replace('public','',$this->basePath()).'/user/sendmessagetoinbox/'; ?>';
    console.log(url);
    var pId = $(event.relatedTarget).data('patientId')
    console.log(pId);   //UNDEFINED
    $(".modal-body").find('form').attr("action",url+pId);
})

您能检查一下这个吗
var pId=$(event.relatedTarget).data('patientId')
尝试替换为
var pId=$(event.relatedTarget).data('patient-id')

我认为这都是关于表单名称属性的

尝试在put标签中添加id=“patient id”:

<input type="hidden" value="" id="patient-id" name="patient-id" />

哪个元素是
event.relatedTarget
使用此$(“[name='patient-id']”)。val()获取患者id我认为
$(event.relatedTarget)
是未定义的,您可以详细说明吗?1) 你期待什么样的行为?2) 你看到了什么行为?3) 有任何控制台输出吗?没有,在jQuery中,它同时适用于camelCase和hyphenated。(在纯JS中,它必须是camelCase
selectedElement.dataset.patientId
)也没有属性为
data patient id
的元素,所以这永远不可能工作为什么不按照@Cyril在注释中建议的那样,只针对属性为
name
的选择器呢
var pId = $('#patient-id').val();