我正在使用 javascript 函数,当点击它时它会显示在模式上,我还有另一个函数来生成随机引用号。我的问题是,它没有显示在文本框上,它显示为空。
//我的表
<table id="ticketTable" class="display table table-hover table-striped">
<thead>
<tr>
<th>Ticket Number</th>
<th>Created By</th>
<th>Date & Time Created</th>
<th>Date & Time Occured</th>
<th>Error Type</th>
<th>Details</th>
</tr>
</thead>
</table>
//我的工作 Javascript,如果点击,我在这里显示我的内容,我的输入文本框“ConvoRef”为空。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js"></script>
<script src="~/Scripts/jquery.dataTables.min.js"></script>
<script src="~/Scripts/dataTables.bootstrap4.min.js"></script>
<script>
$(document).ready(function () {
loadData();
function loadData(is_category) {
var dataTable = $('#ticketTable').DataTable({
"language": {
"emptyTable": "No Transaction"
},
ajax: {
url: "/Ticket/GetTicket/" + is_category,
dataType: "json",
retrieve: "true",
processing: "true",
serverSide: "true",
type: "POST",
dataSrc: "",
data: { is_category: is_category },
},
columnDefs: [
{
targets: [1],
orderable: false,
},
],
columns: [
{
data: "TicketNumber",
},
{
data: "UserTicket"
},
{
data: "DateCreated",
},
{
data: "DateOccurence",
},
{
data: "ErrorType"
},
{
data: "TicketNumber",
render: function (data, type, row, meta) {
return '<button type="button" class="btn btn-info viewdetails" id="' + data + '">View</button>';
},
},
]
});
$(document).on('change', '#category', function () {
var category = $(this).val();
$('#ticketTable').DataTable().destroy();
if (category != '') {
loadData(category);
}
else {
loadData();
}
});
$(document).on('click', '.viewdetails', function () {
var details_id = $(this).attr("id");
var valueID = $(this).attr("id");
console.log(details_id);
$.ajax({
type: "POST",
dataType: "json",
url: "/Ticket/ConvoId/" + details_id,
contentType: "application/json;charset=utf-8",
success: function (data) {
dataTable.ajax.reload();
var jsonData = JSON.parse(data.data);
var html = '';
html += '<hr>';
html += '<div class="card mb-2"><div class="card-body mb-2"><div class="row"><div class="col-md-12">';
html += '<h3><i class="far fa-envelope"></i>Message</h3>';
html += '<div style = "height: auto !important; max-height: 250px !important;; overflow: auto !important;" > ';
html += '</div></div>';
html += '</div></div></div><hr>';
html += '@using (Html.BeginForm("AddConvo", "Ticket", FormMethod.Post, new { enctype = "multipart/form-data" }))
{<form><div><div class="mb-2" style="background-color:#EEEEEE; padding:15px;">**My Text where i want to display my function makeid <input type="text" id="ConvoRef" name="ConvoRef">**<strong>Send Message:</strong> <textarea cols="100" rows="3" class="form-control mt-1 mb-1" name="ConvoDetails" id="ConvoDetails" placeholder="Add Response"></textarea></div><strong><text class="mt-5">Upload File:</text></strong><p class="text-danger font-italic"><strong>Note: Check the file before submit</strong></p><input type="file" name="FilePath" id="FilePath" multiple class="form-control" /><div><input type="submit" class="btn btn-primary btn-sm mt-2 sendButton" type="submit" id="addMessage" value="Send"></div></div></form>}';
html += '</div></div></div>';
html += ' ';
$('#details_info').html(html);
$('#detailsModal').modal('show');
},
error: function () {
alert("content load failed.");
}
});
});
document.getElementById("ConvoRef").value = makeid(7);
function makeid(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
var TicketDate = new Date();
var Tnumber = "T" + TicketDate.getFullYear() + TicketDate.getSeconds() + "-" + result;
return Tnumber;
}
}
});
</script>
最佳答案
您正在尝试在创建输入之前设置值。
移动 document.getElementById("ConvoRef").value = makeid(7);
在 $('#details_info').html(html);
之后应该可以工作。
关于javascript - 在文本框上传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57719330/