gpt4 book ai didi

javascript - 如何使用表单提交上的输入文本更改 jQuery AJAX URL?

转载 作者:行者123 更新时间:2023-11-30 12:22:12 26 4
gpt4 key购买 nike

我对 AJAX 和表单提交有点陌生。我有一个加载股票市场数据并用最新价格、变化、高、低等填充字段的页面...

我正在尝试通过获取输入字段的值并更改 AJAX URL 而无需刷新页面来更改股票市场代码(AJAX URL)。

在这个 plunkr 中,您可以看到我有一个硬编码的 AJAX URL 值,它可以为 AAPL 提取数据,这很有效,但是,我需要将该 URL 更改为 html 表单输入字段中的任何值,但是无法弄清楚如何。需要更改的只是 URL 的最后一个股票代码部分。我非常感谢有人的帮助。

click the eye/live-preview icon on Plunker

$.ajax({
dataType: 'jsonp',
url: 'http://dev.markitondemand.com/Api/v2/Quote/jsonp?symbol=AAPL',
success: function(data) {
$('h1').html(data.Name);
$('.container #companyName').html(data.Name);
$('#lastPrice').html(data.LastPrice.toFixed(2));
$('#change').html(data.Change.toFixed(2));
$('#changePercent').html("(" + data.ChangePercent.toFixed(2) + "%)");
$('#range p').html(data.Low + '- ' + data.High);
$('#open p').html(data.Open.toFixed(2));
$('#volume p').html(Math.round(data.Volume / 100000));
$('#marketCap p').html(Math.round(data.MarketCap / 1000000000));

var vol = data.Volume.toString();
if (vol > 6) {
$('#volume p').append('M');
}

var cap = data.Volume.toString();
if (cap > 7) {
$('#marketCap p').append('B')
}


var date = new Date();
var hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();
var am_pm = date.getHours() >= 12 ? "PM" : "AM";
//hours = hours < 10 ? "" + hours : hours;
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes():date.getMinutes();
var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() :date.getSeconds();
time = hours + ":" + minutes + ":" + seconds + " " + am_pm;
$('#time').html('As of ' + time);

$("#getQuote").submit(function(event) {
var newURL = 'http://dev.markitondemand.com/Api/v2/Quote/jsonp?symbol=' + $('#symbolInput').val();
$.ajax({url:newURL});
event.preventDefault();
});
}
});

这是 HTML 的样子(它使用 Bootstrap ):

<!DOCTYPE html>
<html lang="en">

<head>
<title>Stock Quotes</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>

<body>
<div id="quote-module" class="col-md-12">
<h1></h1>
</div>
<hr id='hruleFat' />
<div class="container">
<div class="row">
<div class='col-md-1' id='companyName'></div>
</div>
<div id='prices'>
<div class='row'>
<div id='lastPrice' class='col-md-6 pull-left'></div>
<div id='changes'>
<div id='changePercent' class='col-md-3 pull-right'></div>
<div id='change' class='col-md-3 pull-right'></div>
</div>
</div>
</div>
<hr>
<div id='range'>
<p class='pull-right'></p>Range</div>
<hr>
<div id='open'>
<p class='pull-right'></p>Open</div>
<hr>
<div id='volume'>
<p class='pull-right'></p>Volume</div>
<hr>
<div id='marketCap'>
<p class='pull-right'></p>Market Cap</div>
<hr>
</div>
<div class='row'>
<div id='time' class='col-md-6 pull-right'></div>
</div>
<hr>
<div id='getQuoteForm' class='row'>
<form class="form-inline" id='getQuote'>
<div class="form-group" id='formGroup'>
<div class='col-xs-6'>
<input type="text" class="form-control" id="symbolInput">
</div>
<div class='col-xs-6'>
<button type="submit" class="btn btn-default">Get New Quote</button>
</div>
</div>

</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="script.js"></script>
<link rel="stylesheet" href="style.css" />
</body>
</html>

最佳答案

将您的 ajax 代码包装在函数 ala 中..

function fireAjax(data){

$.ajax({
dataType: 'jsonp',
url: data.url,
success: function(data) {
$('h1').html(data.Name);
$('.container #companyName').html(data.Name);
$('#lastPrice').html(data.LastPrice.toFixed(2));
// etc...
}

然后,您在该函数之外提交代码。现在,您“可以”将它们放在一起并在“提交点击”上添加一个监听器。它的概念是相同的。

$("#getQuote").submit(function(event) {
var newURL = 'http://dev.markitondemand.com/Api/v2/Quote/jsonp?symbol=' + $('#symbolInput' ).val();
fireAjax({url:newURL});
event.preventDefault();
});

关于javascript - 如何使用表单提交上的输入文本更改 jQuery AJAX URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30633085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com