• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Quick Daily Dish

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Quick Daily Dish

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Black Beans and Rice with Green Chiles

Jump to Recipe·Print Recipe

If you’re looking for a comforting and hearty dish that’s both easy to make and packed with flavor, you’ll love this Black Beans and Rice with Green Chiles recipe. This dish is a family favorite in many households, perfect for busy weeknights or casual gatherings with friends. The blend of spices, along with the creamy black beans and zesty green chiles, creates a unique Tex-Mex experience that’s sure to please everyone at the table.

Black Beans and Rice with Green Chiles image 2

What makes this recipe even more special is its versatility. Whether you serve it as a main course, a side dish, or even as part of taco night, it fits seamlessly into any occasion. Plus, it’s an excellent option for meal prep; you can whip up a big batch and enjoy it throughout the week!

Black Beans and Rice with Green Chiles image 3
Black Beans and Rice with Green Chiles image 4

Why You’ll Love This Recipe

  • Quick and Easy: With just a few simple steps, you can have this delicious meal ready in under an hour.
  • Family-Friendly: This dish is loved by kids and adults alike, making dinner time stress-free and enjoyable.
  • Healthy Ingredients: Packed with fiber-rich black beans and fresh cilantro, it’s a nutritious option that doesn’t skimp on flavor.
  • Make-Ahead Convenience: Perfect for meal prepping! You can store leftovers in the fridge for easy lunches or dinners later in the week.
  • Flavorful Twist: The combination of lime juice and roasted cumin gives this dish a vibrant kick that elevates your everyday rice and beans.

Ingredients You’ll Need

This recipe calls for simple, wholesome ingredients that you probably already have in your pantry. They come together effortlessly to create a delightful meal.

  • 2 cups long grain white rice (rinsed)
  • 4 cups low-sodium chicken broth
  • 1 small white onion (or ½ medium, diced)
  • 1 4 oz can diced green chiles, drained
  • 3 garlic cloves (finely grated)
  • 2 tbsp extra virgin olive oil
  • 1 tsp sazon
  • 1 tsp roasted cumin powder
  • ½ tsp salt
  • 2 15 oz cans organic black beans, rinsed and drained
  • Juice of 1 lime
  • ¼ bunch fresh cilantro (chopped)

Variations

This Black Beans and Rice with Green Chiles recipe is incredibly flexible! Here are some fun variations to switch things up:

  • Add Extra Veggies: Toss in some chopped bell peppers or spinach for added nutrition and color.
  • Make it Spicy: If you like heat, try adding diced jalapeños or a splash of hot sauce to kick things up a notch.
  • Swap the Grains: Use quinoa instead of rice for a protein-packed alternative that’s gluten-free.
  • Turn it into a Bowl: Layer the black beans and rice in bowls with avocado slices, pico de gallo, or your favorite toppings for a hearty fusion meal.

How to Make Black Beans and Rice with Green Chiles

Step 1: Sauté the Aromatics

Heat olive oil in a large pot over medium heat. Add the diced onion and cook until it softens and begins to caramelize, about 6–8 minutes. This step is crucial because caramelizing the onions enhances their natural sweetness, providing a flavorful base for your dish.

Step 2: Add Green Chiles

Stir in the drained diced green chiles and cook for another minute or two. This will infuse your oil with wonderful flavors from the chiles.

Step 3: Incorporate Spices

Add the grated garlic, sazon, cumin powder, and salt to the pot. Cook everything together for about one minute until fragrant. This step is key as it allows the spices to bloom, enriching your entire dish.

Step 4: Toast the Rice

Next, add the rinsed rice to the pot. Stir it well to coat each grain in those flavorful oils before toasting it for about 3–4 minutes. Toasting helps deepen the flavor of the rice.

Step 5: Combine Broth

Pour in your chicken broth and bring everything to a boil. This is where all those delicious flavors start coming together!

Step 6: Simmer Perfectly

Once the liquid begins to evaporate and you see rice peeking through on top, give it one good stir before reducing heat to low. Cover it up tightly and let it simmer for about 20 minutes until tender.

Step 7: Mix in Black Beans

After cooking, gently stir in the rinsed black beans. Cover again for another 3–5 minutes so they warm through without losing their texture.

Step 8: Finish with Freshness

Finally, add chopped cilantro along with fresh lime juice before serving warm. Adjust salt if needed—this final touch adds brightness that really elevates each bite!

Pro Tips for Making Black Beans and Rice with Green Chiles

Cooking this dish is a breeze, but these pro tips will help elevate your experience!

  • Use Fresh Ingredients: Fresh onions, garlic, and cilantro bring vibrant flavors that dried or older versions can’t match. Opting for fresh ingredients enhances the overall taste of your dish.

  • Rinse Your Rice: Rinsing rice before cooking removes excess starch, which helps prevent it from becoming gummy. This simple step ensures fluffy grains that soak up all the delicious flavors.

  • Adjust Spice to Your Liking: If you prefer a bit more heat, consider adding some diced jalapeños or a pinch of cayenne pepper. Customizing the spice level makes the dish more enjoyable for your palate.

  • Let it Rest: After cooking, allowing the dish to sit covered for a few minutes lets the flavors meld together beautifully. It’s worth the wait for an even tastier meal!

  • Batch Cooking: This recipe is perfect for meal prep! Make a larger batch and store leftovers in airtight containers for easy lunches or quick dinners throughout the week.

How to Serve Black Beans and Rice with Green Chiles

Presenting your Black Beans and Rice with Green Chiles can transform a simple meal into something truly special. Here are some delightful serving suggestions!

Garnishes

  • Chopped Avocado: Creamy avocado adds richness and balances the spices beautifully.
  • Sour Cream or Greek Yogurt: A dollop of sour cream or Greek yogurt provides a cooling effect and adds creaminess to each bite.
  • Lime Wedges: Serving lime wedges alongside gives everyone the option to add a fresh squeeze of citrus right before enjoying their meal.

Side Dishes

  • Cornbread: A warm slice of cornbread pairs wonderfully with this dish, soaking up the beans and rice while adding a sweet contrast.
  • Guacamole: Fresh guacamole on the side complements the flavors perfectly, enhancing every bite with its creamy texture and zesty taste.
  • Simple Green Salad: A light salad with mixed greens, cherry tomatoes, and a vinaigrette dressing adds freshness and crunch, balancing out the hearty beans and rice.
  • Grilled Vegetables: Seasonal grilled vegetables offer a smoky flavor that works well alongside this recipe, making it a wholesome dining experience.

Make Ahead and Storage

This Black Beans and Rice with Green Chiles recipe is fantastic for meal prep, making it easy to enjoy delicious meals throughout the week. Here are some simple guidelines on how to store and reheat your leftovers.

Storing Leftovers

  • Allow the dish to cool completely before transferring it to an airtight container.
  • Store in the refrigerator for up to 4-5 days.
  • Label the container with the date so you can keep track of freshness.

Freezing

  • Portion out the black beans and rice into freezer-safe containers or bags.
  • Remove excess air from bags before sealing to prevent freezer burn.
  • Freeze for up to 3 months for optimal flavor and texture.

Reheating

  • Thaw overnight in the refrigerator if frozen.
  • Reheat in a saucepan over medium heat, adding a splash of water or broth to prevent sticking.
  • Alternatively, microwave in a microwave-safe dish, stirring occasionally until heated through.

FAQs

Here are some common questions about Black Beans and Rice with Green Chiles.

Can I use brown rice instead of white rice for Black Beans and Rice with Green Chiles?

Yes, you can! Just remember that brown rice takes longer to cook, so adjust your cooking time accordingly. You might need about 10 additional minutes of simmering time.

What can I serve with Black Beans and Rice with Green Chiles?

This dish pairs wonderfully with tacos, grilled vegetables, or a fresh salad. It also makes an excellent side for any Tex-Mex main course.

Is this recipe suitable for meal prep?

Absolutely! This Black Beans and Rice with Green Chiles recipe is great for meal prep; you can easily store it in the fridge or freeze portions for later enjoyment.

Final Thoughts

I hope you enjoy making this Black Beans and Rice with Green Chiles as much as I do! It’s not only a delightful dish filled with flavors but also a versatile option that’s perfect for busy weeknights or gatherings. Don’t hesitate to get creative with your toppings or serving suggestions. Happy cooking!

Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Black Beans and Rice with Green Chiles

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Print Recipe

Black Beans and Rice with Green Chiles is a vibrant and satisfying dish that brings the heart of Tex-Mex cuisine to your table. This one-pot meal combines creamy black beans, zesty green chiles, and fluffy rice for a hearty experience that’s both comforting and nourishing. Perfect for busy weeknights or casual gatherings, this recipe is as versatile as it is delicious. Serve it as a main course, side dish, or even as part of taco night! With its quick preparation time and healthy ingredients, you’ll find yourself reaching for this recipe again and again.

  • Total Time:

    40 minutes
  • Yield:

    Serves 6

Ingredients


Scale
  • 2 cups long grain white rice (rinsed)
  • 4 cups low-sodium chicken broth
  • 1 small white onion (or ½ medium, diced)
  • 1 4 oz can diced green chiles, drained
  • 3 garlic cloves (finely grated)
  • 2 tbsp extra virgin olive oil
  • 1 tsp sazon
  • 1 tsp roasted cumin powder
  • ½ tsp salt
  • 2 15 oz cans organic black beans, rinsed and drained
  • Juice of 1 lime
  • ¼ bunch fresh cilantro (chopped)


Instructions

  1. In a large pot over medium heat, sauté diced onion in olive oil until caramelized (6–8 minutes).
  2. Stir in drained green chiles and cook for an additional 1–2 minutes.
  3. Add grated garlic, sazon, cumin powder, and salt; cook until fragrant (about 1 minute).
  4. Toast rinsed rice in the pot for 3–4 minutes.
  5. Pour in chicken broth; bring to a boil.
  6. Reduce heat to low once liquid evaporates slightly; cover and simmer for 20 minutes.
  7. Gently mix in rinsed black beans; cover for another 3–5 minutes to heat through.
  8. Finish with lime juice and chopped cilantro before serving warm.
  • Author: Nova
  • Prep Time: 10 minutes
  • Cook Time: 30 minutes
  • Category: Main
  • Method: Sautéing
  • Cuisine: Tex-Mex

Nutrition

  • Serving Size: 1 cup (240g)
  • Calories: 350
  • Sugar: 1g
  • Sodium: 600mg
  • Fat: 10g
  • Saturated Fat: 1g
  • Unsaturated Fat: 8g
  • Trans Fat: 0g
  • Carbohydrates: 55g
  • Fiber: 15g
  • Protein: 12g
  • Cholesterol: 0mg

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.quickdailydish.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”e76c7c8479″,”postId”:335};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
« Previous Post
Instant Pot Chicken Cacciatore
Next Post »
Honey Glazed Asian Salmon Recipe

If you enjoyed this…

Savor Chewy French Toast Cookies for Breakfast Bliss

Savor Chewy French Toast Cookies for Breakfast Bliss

Keto Christmas Tree Cheese Ball

Keto Christmas Tree Cheese Ball

Strawberry Watermelon Salad with Honey-Lime Vinaigrette

Strawberry Watermelon Salad with Honey-Lime Vinaigrette

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Mediterranean Steak Bowls

Mediterranean Steak Bowls

Iced Oatmeal Cookie Bars Recipe

Iced Oatmeal Cookie Bars Recipe

Steak Cobb Salad with Creamy Avocado Dressing {Whole30, Keto}

Steak Cobb Salad with Creamy Avocado Dressing {Whole30, Keto}

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

© 2026 Quick Daily Dish · All Rights Reserved · Created by Chef Nova Blake · About · Privacy Policy · Terms & Conditions · Disclaimer · Contact