[英]JavaScript/jQuery: how to get parameters with their values from .attr("action")?
我有一個在 Ruby On Rails 中呈現的表單,如下所示:
<%= form_tag myaction_path(item_id: item.id),
{ class: 'myaction',
id: "myaction_#{item.id}",
method: :get,
remote: true } do %>
我在 JS 中處理數據:
$(document).ready(function () {
$(".myaction").submit(function(event){
event.stopPropagation();
event.stopImmediatePropagation();
event.preventDefault();
console.log($(this).attr("action"));
...
console.log($(this).attr("action"));
返回/app/myaction?item_id=5528
。
我需要item_id
作為訪問表單中其他項目的鍵。 有什么優雅的方法可以從$(this).attr("action")
獲取它,還是我需要手動解析字符串( /app/myaction?item_id=5528
)?
無法從表單操作中獲取查詢字符串。 您必須手動解析它。
let str = $(this).attr("action");
function parseQueryString(str) {
let query = str.split("?");
if (query.length > 1) {
let item = query[1].split("=");
return item[1] ? item[1] : "";
}
}
let result = parseQueryString(str);
console.log(result);
您可以將 item_id 存儲在隱藏的輸入字段中。 否則,如果您想從操作中解析 item_id 或任何其他字段,則可以使用以下 js 函數:
function parseURL(url) { var searchObject = {} let queries = new URL(url).search.replace(/^\\?/, '').split('&'); for( i = 0; i < queries.length; i++ ) { split = queries[i].split('='); searchObject[split[0]] = split[1]; } return searchObject; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.